添加基于条件查询原则的选择器

时间:2018-07-17 15:41:33

标签: doctrine doctrine-query

如何向条件查询构建器添加基于条件的选择?

我想复制类似于此的SQL:

select p.id, p.id = 3 as first_result
from problem p
order by first_result desc, p.id

1 个答案:

答案 0 :(得分:0)

根据文档,您可以使用表达式并将此列标记为HIDDEN(不包括在结果中),但可以在查询中使用(如您要对结果进行排序)

DQL看起来像

SELECT p, p.id = 3 AS HIDDEN first_result
FROM YourProblemEntity p 
ORDER BY first_result DESC, p.id

或者您可以引入CASE表达式

SELECT p, 
CASE WHEN p.id = 3 THEN 1 ELSE 0 END AS HIDDEN first_result
FROM YourProblemEntity p 
ORDER BY first_result DESC, p.id

See DQL SELECT Examples