2013-02-23 156 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'

相關問題