在mysql中,你可以將select語句的返回值賦給乙個使用者自定義變數,並且可以在你之後的mysql會話中使用該變數。這為儲存一條語句的返回結果然後在其他的語句中引用,提供了乙個方便的途徑。
首先,讓我們看一下在select語句中賦值給使用者變數的語法:
@var_name:=value
下面是乙個先在select語句中賦值給使用者變數,在另一句語句中使用的例子:
select @u1_cid:=cityid from user where uid=1;
select * from user where cityid=@u1_cid;
使用者變數也可以由任意的表示式來賦值,具體例子如下:
select @max_money:=max(money) from user;
使用者變數的另乙個用途是儲存乙個auto_increment列的表中插入新的一行後last_insert_id()的結果,例如:
select @last_id:=last_insert_id();
需要注意的是,如果你使用返回多行記錄的語句賦值給乙個使用者變數,那麼只有最後一行的值會賦給該使用者變數。
如果select語句沒有任何返回值,那麼使用者變數的賦值不會發生變化。如果該使用者變數之前從未被使用,那麼值為null。
你也可以通過set @sum=11;這種語法來為使用者變數賦值。
這種語法同樣可以將乙個select的結果賦給乙個變數,例如:
set @max_money=(select max(money) from user);
Mysql 學習筆記5 之 建立使用者
1insert 語句 首先要知道mysql有個user表專門儲存使用者資訊的,按說可以直接向 mysql.user表中插入new user,但是因為字段比較多,外加一些未知的限制,很容易出錯 至少我還沒嘗試成功 並且如果使用這種方法建立新使用者,必須執行 flush privileges 來告訴se...
MySQL學習 十三
編碼問題 亂碼是如何形成的 1 解碼時與實際編碼不一致 可修復 2 傳輸過程中,編碼不一致,導致位元組丟失,不可修復,如把utf8轉為gb2312 聯結器的特性 連線客戶端和伺服器,客戶端的字元先發給聯結器,聯結器選擇一種編碼將其轉換,臨時儲存,再次轉換成伺服器需要的編碼,並最終儲存在伺服器端 兩個...
c 學習筆記之十三 property之我見
property是c 中的乙個名詞。與其認為是乙個專有語法,還不如認為是一系列語法的組合。property專屬的關鍵字就只有value。其他的性質實現都是用其他的方法的組合。property通過對一系列方法的靈活組合應用,能夠間接地對私有的成員變數進行賦值操作和得到值。因為是間接地,私有變數的私隱性...