Синтаксическая ошибка при выборе последовательной таблицы в Mysql 8 - PullRequest
0 голосов
/ 24 декабря 2018

Запрос:

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.

Пожалуйста, помогите.

1 Ответ

0 голосов
/ 24 декабря 2018

Как прокомментировали уже замечательные SO: с версии 8.0 mysql row_number стал ключевым словом языка, его нельзя использовать в качестве псевдонима столбца.

Так что вам нужно изменить это:

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

Кому:

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

Другое решение заключается в цитировании классификатора, например:

select (@rownum:= @rownum + 1) as "row_number" from 
....
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...