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