2016-11-02 2 views
-2

MYSQL에서이 쿼리를 실행할 때 오류가 발생합니다. 문제를 파악하는 데 도움을 주시기 바랍니다. 다음은 쿼리입니다.변수 값이있는 IF 문을 사용하는 MYSQL 쿼리의 오류

IF ('"+ @[User::CrMgName] +"' IS NULL) 
THEN 
Update companies 
    Set crm_id = '"+ @[User::crm_guid] +"' 
Where TRIM(LOWER(company_directory_name)) = '"+ @[User::EquityStoryId] +"' 

ELSE 
Update companies 
    Set cr_manager = '"+ @[User::CrMgName] +"', 
crm_id = '"+ @[User::crm_guid] +"' 
Where TRIM(LOWER(company_directory_name)) = '"+ @[User::EquityStoryId] +"' 
END IF 
+0

오류를 게시 하시려면 –

+0

으으십시오. 오류 메시지가 있습니까? – sebkrueger

+0

오류를 게시하여 해결 방법을 찾으십시오. – Aroniaina

답변

0

의견이 있으시면 IF 문으로 표현 된 문제는 스크립트에서 사용하십시오.

그래서, 솔루션은 두 가지가 있습니다 : (FARI 말했듯이)

  1. 이 : 솔루션 (2)의 경우

이 시도 IF 문 문 CASE로 교체 저장 프로 시저

  • 을 사용

    UPDATE companies 
    SET crm_id = 
    CASE 
        WHEN @[User::CrMgName] IS NULL THEN '"+ @[User::crm_guid] +"' 
        ELSE'"+ @[User::crm_guid] +"' 
    END, 
    cr_manager = 
    CASE 
        WHEN @[User::CrMgName] IS NULL THEN cr_manager 
        ELSE '"+ @[User::CrMgName] +"' 
    END 
    WHERE TRIM(LOWER(company_directory_name)) = '"+ @[User::EquityStoryId] +"'  
    
  • +0

    을 사용하여 쿼리를 작성하려고합니다. 불행히도 MySQL 일반 스크립트에서는 Case 문을 사용할 수 없습니다. – Fari

    +0

    @Fari : 답변을 업데이트했습니다. CASE 문이 정확합니다 (업데이트 구문에서 오류가 발생했습니다). 다시 시도하십시오. –