Mysql
Mysql從另一個有條件的表更新表
在mysql中我有2個表。
第一的
- wp_postmeta_import
第二
- wp_postmeta_temp
這些表具有以下列:
- meta_id
- post_id
- 元密鑰
- 元值
當 post_id 與 wp_postmeta_import 的 post id 相同並且 meta_key 的值為 _variation_description 時,我只需要更新 wp_postmeta_temp 的列 meta_value,因為在表中是其他 post_id 和其他值
我嘗試了一些程式碼,這是唯一可以稍微起作用的程式碼,但它改變了我需要的行,而在另一個 meta_key 中它給了我 NULL。
UPDATE wp_postmeta_temp SET meta_value = ( SELECT meta_value FROM wp_postmeta_import WHERE wp_postmeta_import.post_id = wp_postmeta_temp.post_id AND wp_postmeta_temp.meta_key = '_variation_description' );
該表有行,例如任何 post_id:
- meta_id:變數(82649,82650..)
- post_id: 5065
- meta_key:_variation_description 或 _regular_price 或 total_sales ecc..
- meta_value: 變數 (15, 0, 200 …)
我希望我很清楚任何人都可以幫助我,好嗎?
您應該加入表格,以便所有行都連接在一起。
在開始之前,使用帶有內部連接的選擇來查看它是否適合。
UPDATE wp_postmeta_temp wpmt INNER JOIN wp_postmeta_import wpi ON wpi.post_id=wpmt.post_id AND wpmt.meta_key = '_variation_description' SET wpmt.meta_value= wpi.meta_value