我的查询是:
SELECT *,
ROW_NUMBER() OVER (ORDER BY score ASC)
FROM submissions
我收到的错误消息是:
#1064-您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册以获取正确的语法,以在第2行的'(ORDER BY score ASC)FROM Submits LIMIT 0,25'附近使用
我正在phpMyAdmin中运行此查询。我注意到,与其他命令字(ORDER,ASC等)不同,OVER并不是蓝色,也不建议输入。
这个简单的查询运行得很好:
SELECT * FROM submissions
我尝试使用RANK函数将其放在引号中,并摆弄空白,但查询仍然无法运行。怎么了?
答案 0 :(得分:1)
我的猜测是您正在运行的MySQL版本早于8+,而该版本不支持ROW_NUMBER
。在早期版本的MySQL中,有一些模拟ROW_NUMBER
的选项。一种是使用用户变量:
SELECT *,
(@row_number:=@row_number + 1) AS rn
FROM submissions, (SELECT @row_number := 0) tmp
ORDER BY score;