sql—在MySQL8中选择顺序表时出现语法错误

8ljdwjyq  于 2021-06-15  发布在  Mysql
关注(0)|答案(1)|浏览(281)

查询:

select 
    (@rownum:= @rownum + 1) as row_number 
from 
    (select * from information_schema.tables limit 25) t,
    (select @rownum := (date_format('2018-12-16 00:00:00','%k'))) r;

在mysql 8中出现语法错误,但在mysql 5.7中没有。
请帮忙。

6ie5vjzr

6ie5vjzr1#

正如brilliant so的人所说:自从mysql版本8.0以来,row\ u number已经成为一个语言关键字,您不能将它用作列别名。
所以你需要改变这个:

select 
(@rownum:= @rownum + 1) as row_number from
...

收件人:

select (@rownum:= @rownum + 1) as rn from 
....

另一种解决方案是引用限定符,如:

select (@rownum:= @rownum + 1) as "row_number" from 
....

相关问题