Mysql中 (@i:=@i+1)的作用
Oracle中有一个伪列rownum,可以在生成查询结果表的时候生成一组递增的序列号。MySQL中没有这个伪列,但是有时候要用,可以用如下方法模拟生成一列自增序号。
语法
需要在from末尾设置变量的初始化格式为:, (select @i:=99) as init
sql示例
select (@i:=@i+1) as rownum, log.id
from start_log log
, (select @i:=99) as init
如果是多表联查,跟上述sql类似,连查完后定义一个初始化序列号即可
应用:Date函数共同使用
select log.create_time, date_add('2021-12-1 00:00:00', interval @i := @i + 1 DAY_MINUTE) dat
from start_log log , (select @i := 0) as init
参考:
https://www.cnblogs.com/zelzzz/p/7881650.html