Mysql 使用SQL更新多篇文章的附件

Mysql 使用SQL更新多篇文章的附件,mysql,sql,wordpress,post,Mysql,Sql,Wordpress,Post,我尝试了几种不同的方法来编写SQL查询,以插入/更新post的图像附件,但没有成功。我想把几个帖子的图片改成相同的 换言之,我想将postesta更新为值XXX,其中post的标题包含某些字符串。问题是帖子的标题在posts表中,而不是POSTETA表中,所以我必须使用post的id从帖子中获取标题 这就是我尝试过的: SELECT ID FROM wp_posts WHERE post_title LIKE ‘%*part of title*%’; UPDATE wp_postmeta SE

我尝试了几种不同的方法来编写SQL查询,以插入/更新post的图像附件,但没有成功。我想把几个帖子的图片改成相同的

换言之,我想将postesta更新为值XXX,其中post的标题包含某些字符串。问题是帖子的标题在posts表中,而不是POSTETA表中,所以我必须使用post的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,第二部分就可以了。基本上,我想在第二次更新查询中使用SELECT查询的结果


有什么想法吗,谢谢?

在MySQL中,您也可以在更新语句中使用连接,并将select语句中的where条件与更新的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*%’

在MySQL中,您还可以在update语句中使用连接,并将select语句中的where条件与update的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*%’

用你写的同一行来做-

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*' 

用你写的同一行来做-

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*' 

举个你尝试过的例子会很好;举个你尝试过的例子会很好;谢谢!这确实奏效了,但我不得不稍微调整一下。非常感谢!这确实奏效了,但我不得不稍微调整一下。