2017-03-24 120 views
0

在SQL我有这个symfony的学说定制DQL

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,给我DQL请为这个IF( ) 我觉得像这样的

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

例如逻辑返回true或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 

为什么你需要这样在if where条款?您可以在不使用if的情况下使用此表达式。只有t.work_type = 'contract' AND te.status != 2没有if将返回与if相同的结果(true/false)。