2012-09-05 2 views
1

나는 내 손에 아주 특이한 문제가 있습니다. 이전 db 엔지니어가 db 디자인에 대해 생각하지 않았고 지금은 그것에 매달린 프로젝트가 있습니다. 내 질문은 간단하다 :MySQL 제어 흐름 조언 (CASE/THEN)

나는 필드가 즉,

0 필드 1의 경우

를 설정하거나하지 않은 경우 두 가지 선택 쿼리가 그 중 하나가 실행되어야 있습니다 -> 1 필드 1의 경우 쿼리 1 를 실행 -

SELECT should_i_care 
FROM 
    product_sample 
WHERE 
    pid='XXX' 
CASE should_i_care 
    WHEN '1' then call query2 
    WHEN '0' then call query1 

을하지만 난 실행하려는 쿼리를 선언하지 못할 것을 발견> 지금까지 내가 여기 있어요 쿼리 2

을 실행합니다. 어떤 제안?

+0

이 같은 스크립트 나 저장 프로 시저해야한다, 그것은 스크립트 또는 절차를 할 필요가있다. if 문을 사용해야합니다. –

답변

1

진술을 할 수없는이

DECLARE shouldICare INT; 

SELECT @shouldICare := should_i_care 
FROM 
    product_sample 
WHERE 
    pid='XXX'; 

IF @shouldICare = 1 THEN 
    Call query2; 
ELSE 
    Call query1; 
END IF; 
+0

장기적으로 보면 테이블을 다시 디자인하는 것이 더 나은 선택이지만이 깔끔한 솔루션에 감사드립니다. – Anonymous

+0

반갑습니다. 행운을 빕니다 :) – hgulyan