跨表更新字段时遭遇MySQL #1064语法错误求助
解决MySQL UPDATE JOIN的#1064语法错误
嘿,这个问题我太熟了!你遇到的是MySQL和其他数据库(比如SQL Server)在UPDATE JOIN语法上的差异问题——你写的是类似SQL Server的写法,但MySQL不认这种UPDATE ... FROM ...的格式,这就是触发#1064语法错误的根源。
你的错误写法(类似SQL Server风格)
UPDATE A SET A.pageviews = B.cntaccess FROM wp_popularpostsdata A INNER JOIN wp_top_ten B ON A.postid = B.postnumber
MySQL支持的正确写法
MySQL的UPDATE JOIN语法不需要FROM子句,而是直接把关联表放在UPDATE后面,调整后的代码如下:
UPDATE wp_popularpostsdata A INNER JOIN wp_top_ten B ON A.postid = B.postnumber SET A.pageviews = B.cntaccess;
额外排查小提示
- 检查字段/表名拼写:你原错误提示里提到的
postnumbe看起来少了最后一个字母r,确认一下wp_top_ten表的字段是不是postnumber,拼写错误也会触发语法或存在性错误。 - 避免保留字冲突:如果你的表名或字段名是MySQL的保留字(比如
order、user),需要用反引号`包裹,比如`wp_popularpostsdata`。
内容的提问来源于stack exchange,提问作者SeiyaJapon
相关产品推荐
相关产品推荐

