2016-06-07 27 views
0

我試過用幾種不同的方法來編寫一個插入/更新文章的圖片附件的SQL查詢,但是我沒有成功。我想將幾個帖子的圖片更改爲相同的。用SQL更新幾篇文章的附件

換句話說,我想將postmeta更新爲值XXX,其中帖子的標題包含特定的字符串。問題是帖子的標題是在帖子表中,而不是在postmeta表中,所以我不得不以某種方式使用帖子的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的。基本上,id喜歡在第二個UPDATE查詢中使用SELECT查詢的結果。

任何想法,謝謝?

+0

做一個更新聯接。 –

+0

你試過的一個例子會很棒;) –

回答

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*' 
+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*%’