我只想按特定类别更新产品。
通过此MySQL查询,我得到了正确的结果:
SELECT * FROM wp_posts
WHERE post_type = 'product'
现在,我有两种类型的产品类别1. ABC
和2. 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查询中检查产品类别?
预先感谢。
答案 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' );