首页 > 解决方案 > SQLSTATE[42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;在实时服务器上使用 DENSE_RANK()

问题描述

我正在开发一个简单的 API,当它在我的本地 xampp 中运行时,我的实时服务器上出现语法错误。

SELECT name, DENSE_RANK() over ( order by countries.photo_profile) as countryrank FROM countries

这在我的本地设置上完美运行:PHP 版本:7.4.4 10.4.11-MariaDB

但不是在我的实时服务器设置上:试过 PHP 版本:7.4.11、7.3、7.2 DB:Percona 5.6.40-84.0

错误:

服务器错误","debug":"SQLSTATE[42000]: 语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取正确的语法,以便在第 1 行的 '(order by countries.photo_profile) as countryrankFROM countries' 附近使用

有任何想法吗?

标签: phpmysql

解决方案


第一条评论是正确的答案“似乎生产服务器没有支持窗口函数的版本”联系我的提供商后,他们似乎仍然使用没有窗口函数的旧版本的 MySQL,因此我将不得不更改实现的排名系统。


推荐阅读