MySQL错误:我的排名语法有什么问题?

时间:2019-05-22 17:38:30

标签: mysql mysql-5.6 sql-rank

我的MySQL版本是5.6。
我有一个MySQL查询,但出现错误,需要帮助以了解我做错了什么。

以下是查询:

select images.thumbnail16x9_file,
       images.square_file,
       RANK() OVER (ORDER BY images.timestamp desc) rank
from images 
where images.media_id = 875021;

这是错误消息:

  

您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册以获取正确的语法,以在'(ORDER BY images.timestamp)rank
附近使用<   来自图像,其中images.media'位于第3行

如果我这样做,我会得到结果:

select images.thumbnail16x9_file,
       images.square_file
from images 
where images.media_id = 875021 ;

有见识吗?

1 个答案:

答案 0 :(得分:1)

看到您提到运行MySQL 5.6时,我将5.6的文档与8.0的文档进行了比较,并注意到RANK()函数在MySQL 5.6中可能不可用。

MySQL 5.6的文档存在here,而8.0的文档存在here

在8.0中搜索RANK()函数将返回一个称为“窗口函数描述”的部分,该部分似乎涵盖了RANK()函数,而在5.6中执行相同的搜索似乎并未返回有关该函数的任何内容。我对此不太确定,但一定会尝试在5.6文档中找到对RANK()函数的引用以进行澄清。