我需要对WordPress DB进行更新,但考虑到次要条件时我会一直打到路障。仅当存在元值#2和元键#2时,为元键#1设置元值#1
在非常简单的话来说,我有一个meta_key = '花'需要一个meta_value = '玫瑰'要设置只在meta_key = '月'和meta_value = '八一'。
我还没有能够编写包含第二个条件的成功mySQL查询。我知道如何做到这一点:
update wp_postmeta
set meta_value = 'roses'
where meta_key = 'flowers'
但不仅限于meta_key =“月”和meta_value =“八一”
任何帮助将不胜感激!提前致谢。
更新#1:
按照要求通过@Strawberry,给予进一步的细节我的问题。我不完全确定,但meta_key ='花'和meta_key ='月'必须相关。就目前而言,所有帖子都由meta_key ='flowers'和meta_key ='month'组成。
UDPATE#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?
感谢大家!
@Strawberry嗯......好点:-)编辑我的答案,那是代表我的愚蠢。 – Mureinik
我不完全确定如何回答你的问题。你指的是meta_key =花和meta_key =月是相关的吗?这是需要post_id吗? – Jorge
@乔治嗯,是的 - 我们还能怎么知道它们是相关的 - 但这在评论中讨论太重要了。也许你可以修改你的问题。 – Strawberry