Mysql中 (@i:=@i+1)的作用


轉載於https://www.2cto.com/database/201804/734758.html

Oracle中有一個偽列rownum,可以在生成查詢結果表的時候生成一組遞增的序列號。MySQL中沒有這個偽列,但是有時候要用,可以用如下方法模擬生成一列自增序號。

(1)sql示例:select (@i:=@i+5) as rownum, surname, personal_name from student, (select @i:=100) as init;

解釋: 上述sql中,紅色值為自定義的初始序號,藍色值為遞增規則,上述sql運行結果如下

\

當然一般不會這么用,簡單的從1開始遞增就行

select (@i:=@i+1) as rownum, surname, personal_name from student, (select @i:=0) as init;

\

(2) 如果是多表聯查,跟上述sql類似,連查完后定義一個初始化序列號即可:

select (@i:=@i+1) as rownum, A.surname, B.uname from student A

left join user B on CONCAT(A.surname,A.personal_name) = B.uname, (select @i:=0) as init;

\


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM