更新几个帖子'附件与SQL

时间:2016-06-07 10:31:01

标签: mysql sql wordpress post

我已经尝试过几种不同的方式编写一个SQL查询来插入/更新帖子的图片附件,但我还没有成功。我想改变几个帖子'图像是一样的。

换句话说,我想将postmeta更新为值XXX,其中post的标题包含某些字符串。问题是帖子'标题是在帖子表中,而不是在postmeta表中,所以我不得不以某种方式使用post&#39的id从帖子中获取标题。

这是我尝试过的:

SELECT ID FROM wp_posts WHERE post_title LIKE ‘%*part of title*%’;

UPDATE wp_postmeta
SET meta_value = *attatchment-post’s id*
WHERE post_id IN (*post* *id’s which attachment is to be updated*) AND meta_key = ‘*my attachment field*’;

如果我手动列出所有帖子,则第二部分有效。 ID' S。基本上id喜欢在第二个UPDATE查询中使用SELECT查询的结果。

任何想法,谢谢?

2 个答案:

答案 0 :(得分:1)

在MySQL中,您也可以在更新语句中使用联接,并从select语句中提取where条件,将其与更新标准结合起来:

update wp_postmeta wpm
inner join wp_posts wp on wpm.post_id=wp.id
set wpm.meta_value=*attatchment-post’s id*
where  wpm.meta_key = ‘*my attachment field*’ and wp.post_title LIKE ‘%*part of title*%’

答案 1 :(得分:1)

在你写的同一行 -

UPDATE wp_postmeta
SET meta_value = (select meta_value from wp_postmeta where post_id = *attatchment-post’s id* AND meta_key = '*my attachment*')
WHERE post_id IN (SELECT ID FROM wp_posts WHERE post_title LIKE ‘%*part of title*%’;
) AND meta_key = '*my attachment*'