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

kognpnkq  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(451)

我遇到过这样一种情况:我需要更新mysql数据库列中的数据,我将一行相关数据的列中的数据复制到同一列中的不同行中。它是一个wordpress/woomcommerce数据库表,名为 "wp_woocommerce_order_itemmeta". 我希望能够复制 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\u value列中的172被复制到 meta_value column where meta_key=_variation_id https://snag.gy/dmrfxu.jpg
我希望能够通过使用产品id值来更新这些产品,因为我有大约180个产品,而且我可以很快完成。但是,我不能通过包含订单\项目\标识号来实现这一点,因为我有数以万计的订单。
在从opencart迁移之后,变体id号的值都是0。我希望有办法运行这样的查询。

xmjla07d

xmjla07d1#

我找到了自己问题的答案。这就是我的工作原理:

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';

我希望这能对将来的人有所帮助。

相关问题