2

別のテーブルの値に基づいて、ある列の値を更新しようとしています。

次のように、列がすべて同じテーブルにある場合、これを行うことができます。

UPDATE wp_posts 
SET post_date = REPLACE (post_date, 'X', 'Y') 
WHERE meta_value = 'Z';

ただし、更新する前に、まず 2 つのテーブルを結合する必要があります。

SELECT * 
FROM wp_posts 
LEFT OUTER JOIN wp_postmeta ON post_id = post_id

結合した 2 つのテーブルに基づいて更新するにはどうすればよいですか?

4

3 に答える 3

6

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';
于 2012-08-24T12:54:35.190 に答える
0

SQLサーバー

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'
于 2012-08-24T13:02:39.187 に答える
-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'
于 2012-08-24T12:54:15.890 に答える