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 

      执行结果:

        

猜你喜欢

转载自www.cnblogs.com/one-gril/p/11323759.html