1

我的 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 服务器版本相对应的手册,以获取正确的语法,以便
在第 3 行的 '(ORDER BY images.timestamp ) rank from images where images.media'附近使用

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

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

有什么见解吗?

4

1 回答 1

2

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

MySQL 5.6 的文档位于此处,8.0的文档位于此处

在 8.0 中搜索 RANK() 函数会返回一个名为 Window Function Descriptions 的部分,该部分似乎涵盖了 RANK() 函数,而在 5.6 中执行相同的搜索似乎不会返回有关该函数的任何信息。我对此不是 100% 确定,但肯定会尝试在 5.6 文档中找到对 RANK() 函数的引用以进行澄清。

于 2019-05-22T17:47:04.413 回答