我需要使用另一个表中的值从mysql表更新一个日期。
我试图在我的mysql服务器上执行此操作,
更新
update wp_posts post
join wp_postmeta meta
on post.ID = meta.post_id
set post.post_date = meta.false_date
where meta.false_date <> '';
但是我在终端
上收到以下错误错误
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'from wp_posts post, wp_postmeta meta where post.ID = meta.post_id and meta.false' at line 1
元
| 7647 | 1483 | false_date | 2016-12-30
SQL句子
update wp_posts post
join wp_postmeta meta
on post.ID = meta.post_id
set post.post_date = meta.false_date
where meta.false_date <> '';
错误2
ERROR 1054 (42S22): Unknown column 'meta.false_date' in 'where clause'
我做错了什么?
任何帮助都会受到赞赏,
雅斯特尔。
答案 0 :(得分:3)
正确的语法如下所示:
update post p join
meta m
on p.id = m.post_id
set p.post_date = m.false_date
where m.false_date <> '';
注意:
update
不支持FROM
子句。JOIN
语法。<>
。false_date
被正确存储为日期,那么您的比较应该毫无意义。也许你只是打算:where false_date is not null
。