2017-03-24 18 views
0

DQL 나는이심포니의 교리 사용자 정의 SQL에서

AND oir.id IS NULL 
AND IF(t.work_type = 'contract' AND te.status != 2, FALSE, TRUE)  

을 가지고 있고이

IF(t.work_type = 'contract' AND te.status != 2, FALSE, TRUE)  

도움을 사용자 정의 DQL을 생성 수정하는 방법을 모른다, (나이 IF에 대한하시기 바랍니다 DQL 제공) 나는이

IF (confition and confition, (return if true), (return if false)) 

예를 들어 같은 논리가 반환 생각 참 또는 거짓

또는 어떻게 이것을 queryBuilder에서 해석합니까?

답변

0

DQL이 if을 지원하는지 기억이 안납니다. 아니라고 생각합니다.
대신 case when ... then ... else ... end을 사용할 수 있습니다.

AND oir.id IS NULL 
AND (CASE WHEN t.work_type = 'contract' AND te.status != 2 THEN FALSE ELSE TRUE END) = TRUE 

왜 Where 절에 if이 필요합니까? if없이이 표현식을 사용할 수 있습니다. if없이 t.work_type = 'contract' AND te.status != 2을 입력하면 if과 같은 결과 (true/false)가 반환됩니다.