MariaDB执行多表关联UPDATE操作时报1064语法错误如何解决
问题原因
你当前使用的MariaDB版本对老式逗号分隔隐式连接的多表更新写法兼容性不足,因此触发1064语法报错。
修复后的SQL
改用标准显式INNER JOIN写法即可正常执行,代码如下:
UPDATE members m INNER JOIN pfields_cont p ON m.member_id = p.member_id SET m.member_group_id = 6 WHERE p.field_2 = 'Teacher';
额外说明
- 上述显式JOIN写法符合SQL标准,兼容所有MariaDB、MySQL版本,可读性也更高
- 如果你偏好隐式连接写法,只需把要更新的
members表放到UPDATE后第一位即可(兼容性弱于显式JOIN,不推荐):
UPDATE members m, pfields_cont p SET m.member_group_id = 6 WHERE p.member_id = m.member_id AND p.field_2 = 'Teacher';
内容的提问来源于stack exchange,提问作者Hilas
相关产品推荐
相关产品推荐

