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

SQL UPDATE语句语法错误排查:非篮足未来赛事票价更新

SQL语法错误排查与修正

问题原因

你编写的UPDATE语句语法错误,因为MySQL的UPDATE JOIN语法要求JOIN子句必须放在SET子句之前,而你的代码先写了SET再写JOIN,违反了语法规则。

正确写法

方法一:使用JOIN(推荐,性能更优)

UPDATE Events
JOIN Sports ON Sports.SportID = Events.SportID
SET TicketPrice = TicketPrice * 0.9
WHERE SportName NOT IN ('Basketball', 'Soccer') AND Date > CURDATE()

方法二:使用子查询(逻辑更直观)

如果更习惯用子查询筛选目标SportID,也可以这样写:

UPDATE Events
SET TicketPrice = TicketPrice * 0.9
WHERE SportID NOT IN (
    SELECT SportID FROM Sports WHERE SportName IN ('Basketball', 'Soccer')
) AND Date > CURDATE()

说明

  • 方法一通过JOIN直接关联两张表,避免子查询嵌套,在数据量较大时执行效率更高。
  • 方法二通过子查询先获取需要排除的运动ID,再更新符合条件的赛事,逻辑上更容易理解。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 00:59:54