根据2个键更新post_meta值-Wordpress

时间:2018-09-19 12:31:52

标签: mysql sql database wordpress woocommerce

我在WooCommerce中有5000多种产品,我正在寻找一个SQL查询以根据其SKU设置其条形码。 “条形码”和“ sku”都是自定义帖子元。基本上是这样的:

UPDATE wp_postmeta SET barcode='x' WHERE sku='y';

但是它不起作用,因为条形码和sku不是真实的表列。那么,有人可以提供有效的查询吗?我是SQL的新手。谢谢!

1 个答案:

答案 0 :(得分:1)

sku和条形码将存储在两个由post_id链接的独立行中。这是在MySQL(borrowed from this answer)的同一张表中基于另一行更新的语法:

UPDATE  wp_postmeta a
  JOIN  wp_postmeta b on b.post_id = a.post_id
  SET   a.meta_value = 'y'
  WHERE a.meta_key = 'barcode'
    AND b.meta_key = 'sku'
    AND b.meta_value = 'x';

即查询表别名b上的ID,然后更新表别名a上的条形码。

(但是我没有安装WooCommerce进行测试-请先备份您的数据库!等)