You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL 8.0含保留字多查询语句报错,请求语法排查帮助

问题解决:MySQL查询语法错误修正

错误根源

rank是MySQL的保留关键字,直接将其作为字段名使用时,MySQL无法正确解析语法,这就是报错的核心原因。

修正方案

将所有用作字段名的rank用反引号(`)包裹,同时注意原SQL中的>是HTML转义字符,实际执行需替换为>,否则会引发新的语法错误。

修正后的完整SQL

SELECT
`rank`
FROM
(
SELECT
    @rn := @rn +1 AS `rank`,
    t1.*
FROM
    (
    SELECT
        *
    FROM
        playdata
    WHERE
        game_id = 629 AND recordtime > '2023-02-06 01:44:01' AND domain_id = 46
    ORDER BY
        score DESC,
        recordtime ASC
    LIMIT 20
) t1,
(
SELECT @rn := 0
) t2
) xx WHERE  field_5='8247db4f-0760-4301-8fcb-272808fde877' AND 
YEARWEEK(recordtime)=YEARWEEK(NOW());

额外优化(MySQL 8.0+适用)

如果你的MySQL版本是8.0及以上,可以改用窗口函数ROW_NUMBER()替代变量赋值的方式实现排名,写法更简洁规范:

SELECT `rank`
FROM (
    SELECT
        ROW_NUMBER() OVER(ORDER BY score DESC, recordtime ASC) AS `rank`,
        t1.*
    FROM (
        SELECT *
        FROM playdata
        WHERE game_id = 629 AND recordtime > '2023-02-06 01:44:01' AND domain_id = 46
        ORDER BY score DESC, recordtime ASC
        LIMIT 20
    ) t1
) xx 
WHERE field_5='8247db4f-0760-4301-8fcb-272808fde877' AND YEARWEEK(recordtime)=YEARWEEK(NOW());

内容的提问来源于stack exchange,提问作者wdyz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 01:52:12