更新MySQL数据库列,其中元数据从一行复制到另一行

时间:2018-08-03 02:35:30

标签: mysql sql wordpress woocommerce orders

我遇到的情况是,我需要更新MySQL数据库列中的数据,在该列中,我将数据从一行相关数据的列复制到同一列但在另一行。 这是一个名为"wp_woocommerce_order_itemmeta".的Wordpress / WooCommerce数据库表,我希望能够复制meta_value where meta_key=_product_id to meta_value column where meta_key=_variation_id whereever the order_item_id numbers match的值。 因此,在屏幕快照中,您看到所有order_item_id值都相同(它们全部为8)-我希望将meta_value列中的172复制到meta_value column where meta_key=_variation_id

https://snag.gy/DMrfXu.jpg

我希望能够使用_product_id值来更新这些值,因为我有大约180种产品,并且可以相当快地完成此操作。但是,我不能通过包含order_item_id数字来完成此操作,因为我有成千上万的订单。

从OpenCart迁移后,所有版本ID都带有0值。我希望有一种方法可以运行这样的查询。

1 个答案:

答案 0 :(得分:1)

我想出了我自己问题的答案。 这对我有用:

UPDATE wp_woocommerce_order_itemmeta as wp1, wp_woocommerce_order_itemmeta as wp2 
SET wp2.meta_value = replace(wp2.meta_value,'0','172') 
WHERE wp1.order_item_id = wp2.order_item_id AND wp1.meta_key = '_product_id' 
AND wp2.meta_key = '_variation_id' AND wp1.meta_value='172' AND wp2.meta_value='0';

我希望这将来对某人有帮助。