2016-06-07 2 views
0

여러 가지 방법으로 게시물의 이미지 첨부 파일을 삽입/업데이트하는 SQL 쿼리를 작성했지만 성공하지 못했습니다. 나는 여러 게시물의 이미지를 동일하게 변경하고 싶습니다.여러 게시물의 첨부 파일을 SQL로 업데이트

다른 말로하면 게시물의 제목에 특정 문자열이 들어있는 값을 XXX로 변경하는 데 메타 데이터를 업데이트하고 싶습니다. 문제는 포스트의 제목이 포스트 테이블에있는 것이지 포스트 메타 테이블에 있지 않다는 것입니다. 그래서 게시물의 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*’; 

두 번째 부분은 작동합니다. 기본적으로 두 번째 UPDATE 쿼리에서 SELECT 쿼리의 결과를 사용하려고합니다.

감사합니다.

+0

UPDATE JOIN을하십시오. –

+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 문에서 어디에 기준을 올릴 수에서

:

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*%’ 
관련 문제