我需要对我的WordPress数据库进行更新,但考虑到次要条件时,我一直遇到障碍。
以非常简单的术语,我有 meta_key ='鲜花' 需要 meta_value ='玫瑰' 仅设置 meta_key =' month' 和 meta_value =' august' 。
我无法编写包含第二个条件的成功MySQL查询。我知道怎么做:
update wp_postmeta
set meta_value = 'roses'
where meta_key = 'flowers'
但不仅限于 meta_key ='月' 和 meta_value =' august'
任何帮助将不胜感激!提前谢谢。
更新#1:
根据@Strawberry的要求,进一步详细说明我的问题。我不完全确定如何,但meta_key =' flowers'和meta_key =' month'必须相关。目前,所有帖子都包含一个meta_key =' flowers'和meta_key ='月'。
更新#2:
我能够从@Rahul那里得到帮助,这是适用于我的版本:
UPDATE wp_postmeta a
JOIN wp_postmeta b ON a.post_id = b.post_id AND
b.meta_key = 'month' AND
b.meta_value = 'august'
SET a.meta_value = 'roses'
WHERE a.meta_key = 'flowers';
希望它也可以帮助其他人。另外,有关JOIN的更多详细信息,请参阅:How to do 3 table JOIN in UPDATE query?
感谢大家!
答案 0 :(得分:0)
exists
运算符应该完成这项工作:
UPDATE wp_postmeta a
SET a.meta_value = 'roses'
WHERE a.meta_key = 'flowers' AND
EXISTS (SELECT *
FROM wp_postmeta b
WHERE a.post_id = b.post_id AND
b.meta_key = 'month' AND
b.meta_value = 'august')