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

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

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

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

\

固然通常不會這麼用,簡單的從1開始遞增就行select

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

\

(2) 若是是多表聯查,跟上述sql相似,連查完後定義一個初始化序列號便可:im

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;img

\

相關文章
相關標籤/搜索