gpt4 book ai didi

mysql - Doctrine 2 mysql FIELD函数按顺序排列

转载 作者:IT老高 更新时间:2023-10-29 00:09:56 24 4
gpt4 key购买 nike

我正在尝试在查询的 order by 子句中使用 MySQL FIELD 函数。我假设 Doctrine 2 不支持开箱即用的 FIELD 函数——是这样吗?如果是这样,我该如何使用它?我是否必须将整个查询转换为 native 查询?是否有添加此功能的 Doctrine 2 扩展?

最佳答案

杰里米·希克斯,感谢 your extension .我不知道如何将您的功能与教义联系起来,但最终我找到了答案。

$doctrineConfig = $this->em->getConfiguration();
$doctrineConfig->addCustomStringFunction('FIELD', 'DoctrineExtensions\Query\Mysql\Field');

我需要 FIELD 函数来订购我通过 IN 表达式选择的实体。但是这个函数只能在SELECT, WHERE, BETWEEN 子句中使用,不能在ORDER BY 中使用。

解决方案:

$qb
->select("r, field(r.id, " . implode(", ", $ids) . ") as HIDDEN field")
->from("Entities\Round", "r")
->where($qb->expr()->in("r.id", $ids))
->orderBy("field");

为避免在结果行中添加 field 别名,您需要输入 HIDDEN 关键字。所以这如何能够在 Doctrine 2.2 中的 IN 表达式中排序值。

关于mysql - Doctrine 2 mysql FIELD函数按顺序排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5957330/

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