MySQL Workbench中titanic表UPDATE语句报1064语法错误
1064语法报错根因
这个报错是MySQL解析器无法识别当前语句结构导致的,对应你当前的操作存在3处明确的语法规则偏差:
- 缺失UPDATE语句强制要求的
SET关键字:你Workbench中实际触发执行的语句为UPDATE titanic Age = 1000, Where Age = 0,表名和后续赋值列表之间没有写SET,解析器无法识别后面的赋值逻辑。 - 冗余逗号触发解析阻断:你在赋值内容结束后、
WHERE关键字前面多加了一个无意义的逗号,也就是报错提示中标记的, Where Age = 0位置。MySQL语法规定WHERE作为筛选子句的起始关键字,前面不允许接逗号,这是直接触发报错的核心原因。 - 标点使用规则混淆:你最初编写的代码
UPDATE titanic SET Age = 100, Where Age = 0;中,同样存在SET赋值完成后、WHERE前多加逗号的问题,即使后续补全了SET关键字,这个冗余逗号依然会触发1064报错。
修正后可直接执行的代码
-- 执行更新前先校验筛选范围,避免误改不符合预期的全表数据 SELECT * FROM titanic WHERE Age = 0; -- 确认匹配的记录范围无误后执行更新操作 UPDATE titanic SET Age = 100 WHERE Age = 0;
UPDATE语句语法注意事项
- 逗号在UPDATE语句中仅用于
SET子句内多列同时赋值的场景,合法使用示例为:
只有两个赋值列之间的逗号才符合语法规则,UPDATE titanic SET Age = 100, Pclass = 3 WHERE Age = 0;WHERE子句前方禁止加逗号。 - 如果不需要筛选条件、要对全表做更新,写完
SET后的所有赋值项直接接英文分号即可,不需要额外添加冗余标点。
内容的提问来源于stack exchange,提问作者vishnu D
相关产品推荐
相关产品推荐

