Doctrine 将基于条件的选择添加到条令查询生成器

Doctrine 将基于条件的选择添加到条令查询生成器,doctrine,doctrine-query,Doctrine,Doctrine Query,如何将基于条件的选择添加到条令查询生成器 我希望复制类似以下内容的SQL: select p.id, p.id = 3 as first_result from problem p order by first_result desc, p.id 根据文档,您可以使用expression并将此列标记为隐藏(不包括在结果中),但可以在查询中使用,就像在您的案例中一样,以排序结果 DQL看起来像 SELECT p, p.id = 3 AS HIDDEN first_result FROM Your

如何将基于条件的选择添加到条令查询生成器

我希望复制类似以下内容的SQL:

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

根据文档,您可以使用expression并将此列标记为隐藏(不包括在结果中),但可以在查询中使用,就像在您的案例中一样,以排序结果

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

在“选择部分”中是否需要一个单独的列,或者您只需要根据
p.id=3
对结果进行排序?不需要单独的选择结果-我在SQL中就是这样做的