MySQL的(@i:=@i+1)用處及用法


今天寫一個為查詢的數據排序列號的SQL語句,整理出來下面的筆記:

這是語法:

   1 SELECT (@i:=@i+1),t.* FROM table_name t,(SELECT @i:=0) AS j 

(@i:=@i+1)代表定義一個變量,每次疊加1;

(SELECT @i:=0) AS j 代表建立一個臨時表,j是隨便取的表名,但別名一定要的。

這里有幾個案例:

  1.單表查

    執行SQL語句: 1 SELECT (@i:=@i+1),t2.phone,t2.name,t2.create_time FROM t_admin_copy_member t2,(SELECT@i:=0)AS j  

    執行結果:

        

    2.若加個需求,按日期倒序排

      SQL語句變為: 1 SELECT (@i:=@i+1),p.* 2 FROM ( 3 SELECT t2.phone,t2.name,t2.create_time FROM t_admin_copy_member t2 ORDER BY create_time DESC 4 )p,(SELECT@i:=0)k 

      執行結果:

        

 


免責聲明!

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



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