2013-02-23 159 views
0

我试图将表wp_posts中的post_title字段复制到表wp_postmeta中的meta_value字段。这些是wordpress tabkes。从一个表到另一个表中的SQL复制字段

UPDATE wp_postmeta 
SET wp_postmeta.meta_value = wp_posts.post_title 
FROM wp_posts,wp_postmeta 
WHERE wp_posts.ID = wp_postmeta.post_id 
AND wp_postmeta.meta_key LIKE '%_yoast_wpseo_focuskw' 

收到此错误:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM wp_posts,wp_postmeta WHERE wp_posts.ID = wp_postmeta.post_id AND wp_pos' at line 3

我要去哪里错了?

回答

0

试试这个

UPDATE wp_postmeta m INNER JOIN 
     wp_posts p ON p.ID = m.post_id 
    SET m.meta_value = p.post_title 
WHERE m.meta_key LIKE '%_yoast_wpseo_focuskw' 
+0

非常感谢参加本wp_postmeta伟大的工作。谢谢,你能否在我出错的地方添加评论,似乎我的陈述有道理,但显然这是错误的。 – user929837 2013-02-23 20:42:04

+0

非常欢迎。在多表'UPDATE'表引用(不包括'FROM')中的Mysql中,首先,然后是SET子句,然后是WHERE(可选)。请参阅[UPDATE语法](http://dev.mysql.com/doc/refman/5.6/en/update.html) – peterm 2013-02-24 00:13:51

0

你必须与表名的更新,然后有一个FROM子句做同样的事情。要么在UPDATE子句中组合需要的表,要么为子查询需要SELECT。

在任何情况下,FROM都是不正确的语法。您可以使用Google for SQL语法或特定于MySQL的SQL语法,这可能会帮助您了解MySQL的合法SQL。

0

UPDATE wp_postmeta SET wp_postmeta.meta_value = wp_posts.post_title FROM wp_posts 内对 wp_posts.ID = wp_postmeta.post_id 和wp_postmeta.meta_key LIKE '%_yoast_wpseo_focuskw'

相关问题