如果特定meta_key包含特定meta_value,请更新产品价格

时间:2018-03-16 12:22:45

标签: mysql sql wordpress woocommerce product

在Wordpress / Woocommerce数据库中有一个wp_postmeta表。

我只是在同一meta_value = '0'存在另一个meta_key = '_price'meta_key = 'group'的情况下,尝试更新meta_value = 'glass' post_id

这就是我的尝试:

UPDATE wp_postmeta SET meta_value = '0'
WHERE meta_key = '_price' AND meta_key = 'group' AND meta_value = 'glass';

还有这个:

  UPDATE 
        `wp_postmeta` 
    SET 
        `meta_value` = '0' 
    WHERE 
        meta_key = '_price' 
        AND `meta_key` IN (
            SELECT 
                `meta_value` = 'glass' 
            FROM 
                `wp_postmeta`
        );

这些尝试都无效。

如果同一meta_value = '0'存在meta_key = '_price'meta_key = 'group',我该如何更新meta_value = 'glass'post_id}?

感谢任何帮助。

enter image description here

1 个答案:

答案 0 :(得分:1)

试试这个:

UPDATE wp_postmeta as pm
INNER JOIN wp_postmeta as pm2 on pm.post_id = pm2.post_id
SET pm.meta_value = '0'
WHERE pm.meta_key = '_price'
AND pm2.meta_key = 'group' 
AND pm2.meta_value = 'glass';

它应该有用