首页 文章

symfony doctrine自定义dql

提问于
浏览
0

在sql我有这个

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

我不知道如何纠正为此创建自定义DQL

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

求助,给我dql请为这个IF()我认为这样的逻辑

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

示例返回true或false

或者如何为queryBuilder解释这个?

1 回答

  • 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 的情况下使用此表达式 . 只有 t.work_type = 'contract' AND te.status != 2 没有 if 将返回与 if 相同的结果( true/false ) .

相关问题