使用SQL查询以meta_key ='_ regular_price'中的值更新meta_key ='_ price'

时间:2019-01-13 09:21:08

标签: mysql sql wordpress woocommerce

在我要用_regular_price的值更新_price的每个产品的数据库中,由于_price的值小于_regular_price的值,因此我尝试使用此查询,但是没有用。

UPDATE wp_g9he6fnfw8_postmeta 
SET META_KEY._regular_price = META_KEY._price

我也试图像这样更新值,但是没有用

UPDATE wp_g9he6fnfw8_postmeta 
SET _regular_price = _price

我哪里出错了。如何将_regular_price的值复制到_price。

1 个答案:

答案 0 :(得分:2)

例如,您可能需要自我加入

drop table if exists t;

create table t( postid int, meta_key varchar(20), meta_value int);

insert into t values
(1,'_regular_price',10),
(1,'_price',20);

update t t1 join t t2 on t2.postid = t1.postid and t2.meta_key = '_price'
set t1.meta_value = t2.meta_value
where t1.meta_key = '_regular_price';

select * from t;

+--------+----------------+------------+
| postid | meta_key       | meta_value |
+--------+----------------+------------+
|      1 | _regular_price |         20 |
|      1 | _price         |         20 |
+--------+----------------+------------+
2 rows in set (0.00 sec)