gpt4 book ai didi

doctrine-orm - 如何按 DQL 中的计算值排序

转载 作者:行者123 更新时间:2023-12-03 21:01:40 26 4
gpt4 key购买 nike

我试图通过它们是否与我在属性上的原始实体匹配来对我的查询结果进行排序。我可以使用以下查询在 mySQL 中轻松完成此操作:

SELECT * FROM table
ORDER BY prop = 'value' DESC;

但是,在 Doctrine 中,当我尝试以下操作时:
// $qb is an instance of query builder
$qb->select('e')
->from('Entity', 'e')
->orderBy('e.prop = :value', 'DESC')
->setParameter('value', 'value');
// grab values

我收到一个 Doctrine 语法错误,“字符串结尾”。我考虑创建一个自定义函数,但这似乎有点矫枉过正。我对 Doctrine 还很陌生,有没有更好的方法来做到这一点?

最佳答案

从 Doctrine ORM 2.2 开始,您可以使用 HIDDEN关键字并选择其他字段,在本例中使用 CASE表达:

SELECT
e,
CASE WHEN e.prop = :value THEN 1 ELSE 0 END AS HIDDEN sortCondition
FROM
Entity e
ORDER BY
sortCondition DESC

关于doctrine-orm - 如何按 DQL 中的计算值排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15257538/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com