我试图根据另一个表中的值更新一列中的值。
如果列全部在同一个表中,我可以这样做:
UPDATE wp_posts
SET post_date = REPLACE (post_date, 'X', 'Y')
WHERE meta_value = 'Z';
但是我需要先加入两个表才能更新:
SELECT *
FROM wp_posts
LEFT OUTER JOIN wp_postmeta ON post_id = post_id
如何根据我加入的两个表进行更新?
答案 0 :(得分:5)
如果您使用 SQL Server
,请尝试这种方式UPDATE WP
SET WP.post_date = REPLACE(WPM.post_date, 'X', 'Y')
FROM wp_posts WP
LEFT OUTER JOIN wp_postmeta WPM ON WP.post_id = WPM.post_id
WHERE WP.meta_value = 'Z';
<强>更新强>
如果您使用的是 MySQL 。这是 MySQL
的更新UPDATE wp_posts WP
LEFT JOIN wp_postmeta WPM ON WP.post_id = WPM.post_id
SET WP.post_date = REPLACE(WPM.post_date, 'X', 'Y')
WHERE meta_value = 'Z';
答案 1 :(得分:0)
SQL Server
UPDATE wp_posts
post_date = REPLACE (post_date, 'X', 'Y')
FROM wp_posts WP LEFT OUTER JOIN wp_postmeta WPM ON WP.post_id = WPM.post_id
WHERE meta_value = 'Z';
<强>的MySQL 强>
UPDATE wp_posts
LEFT JOIN wp_postmeta WPM ON WP.post_id = WPM.post_id
SET post_date = REPLACE (post_date, 'X', 'Y')
WHERE meta_value = 'Z'
答案 2 :(得分:-1)
UPDATE wp_posts SET post_date = REPLACE (WPM.post_date, 'X', 'Y')
FROM wp_posts AS WP
LEFT OUTER JOIN wp_postmeta AS WPM ON WP.post_id = WPM.post_id
WHERE WP.meta_value = 'Z'