MySQL查询以按类别名称获取WooCommerce产品

时间:2020-09-26 11:02:52

标签: php mysql wordpress woocommerce

我只想按特定类别更新产品。

通过此MySQL查询,我得到了正确的结果:

SELECT * FROM wp_posts 
WHERE post_type = 'product'

现在,我有两种类型的产品类别1. ABC2. XYZ ABC有5个产品,XYZ有30000个产品。

我只想更新具有类别ABC的产品的元数据

为此,我编写了MySQL查询:

UPDATE `wp_postmeta`
SET `meta_value`= ( CASE WHEN `meta_key` = '_stock' THEN '0'
                         WHEN `meta_key` = '_stock_status' THEN 'outofstock'
                         ELSE `meta_value`
                    END)
WHERE post_id NOT IN( '2268', '2298', '2299', '2135' );

我不想使用NOT IN,因为如果要添加任何类别,则此查询将是错误的。

如何在此MySQL查询中检查产品类别?

预先感谢。

1 个答案:

答案 0 :(得分:1)

子查询应该执行:

UPDATE `wp_postmeta` 
SET    `meta_value`= ( 
       CASE 
              WHEN `meta_key` = '_stock' THEN '0' 
              WHEN `meta_key` = '_stock_status' THEN 'outofstock' 
              ELSE `meta_value` 
       end) 
WHERE  post_id NOT IN 
       ( 
              SELECT id
              from   wp_posts 
              WHERE  post_type = 'product' );
相关问题