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

MariaDB多表关联UPDATE使用CASE语句报1064语法错误如何解决

问题解决方法

错误原因

你写的SQL存在两个语法错误,触发了1064报错:

  • CASE 语句的每个WHEN分支末尾错误使用了分号,分号是整条SQL的结束标识,放在分支内部会打断语法解析
  • 判断字段是否为NULL不能使用=运算符,SQL中NULL和任何值做等值比较结果都为未知,必须使用IS NULL关键字判断

修正后的SQL语句

UPDATE user_games 
LEFT JOIN games ON user_games.game_key = games.game_id 
SET user_games.result = CASE 
                            WHEN user_games.pick = games.winner THEN 'W'
                            WHEN games.winner IS NULL THEN NULL
                            ELSE 'L'
                        END;

补充说明

如果你希望games.winner为NULL时,保留user_games.result字段的原有值(而不是强制设为NULL),可以把第二个WHEN分支调整为不处理该场景,例如新增WHERE条件过滤games.winner IS NOT NULL的行,避免覆盖原有数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 17:09:02