2012-12-19 7 views
1

다른 필드의 값에 따라 MySQL에서 어떻게 바꾸고 찾을 수 있습니까? 예 :MySQL의 문자열을 다른 필드의 값에 따라 특정 필드에 바꿉니다.

"post_parent"열의 "0"값을 모두 "126810"으로 바꾸려면 ... "post_type"필드에 해당 항목의 값이 "topic"인 경우에만 . 모든

는 나는 이런 식으로 뭔가있을 것이라고 생각하지만, 작동 구문 문제 것 같지 않고 :

update wp_posts set post_parent = replace(post_parent,`0`,`126810`) 
WHERE `post_type` LIKE 'topic'); 

나는 또한 입수했습니다 수있는 경우에도 작업에, 내가 가진 것이라고 추측 의 대체 모든 post_parent 값 10, 20, 30 등 1,126,810, 2,126,810,와 등

누구든지 내가 그 문제를 모두 해결할 수있는 방법을 알고 일이?

답변

0

당신은 당신의 WHERE 절을 확장 할 수 있어야한다 :

update wp_posts 
set post_parent = replace(post_parent,0,126810) 
WHERE post_type = 'topic' 
    AND post_parent = 0; 

SQL Fiddle with Demo

+0

정말 개가되었습니다. 어, 부탁이야. – Nathan

+0

5 분 안에 대답을 받아 들일 것입니다. 분명히 newbaroo로서 제 질문에 너무 빨리 답하고 테스트하는 것이 좋지 않습니다. :) – Nathan

+0

@Nathan, 기꺼이 도와 드리겠습니다. 올바른 구문에 가깝습니다. – Taryn

0

는 아마도 case when 당신을 도울 것입니다 참조하십시오.

update wp_posts 
set post_parent = 
case when (`post_type` LIKE 'topic' 
and post_parent = `0`) 
then 
replace(post_parent,`0`,`126810`) 
end 

;

관련 문제