使用原则通过 FIELD() 排序,可能吗?

cos*_*ari 5 php mysql doctrine dql symfony

我正在开发一个使用 Symfony 和 Doctrine 构建的项目,但是我对整个设置仍然很陌生。

长话短说,我需要按照选择中使用的数组的顺序对结果集进行排序。

我相信可以使用 FIELD() 函数来完成,但是根据我的调查,使用 Doctrine 似乎不可能做到这一点。

例如,我对如何在如下查询中使用 FIELD() 感到困惑(如果可能的话):

return $this
            ->createQueryBuilder('a')
            ->where('a.identifier IN (:identifiers)')
            ->setParameter('identifiers',$identifiers)
            ->getQuery()
            ->getResult();
Run Code Online (Sandbox Code Playgroud)

小智 4

我正在使用原则版本 1.2.4 并使用以下查询按特定值排序。

$query->orderBy('FIELD(str,str1,str2,str3,...)');
Run Code Online (Sandbox Code Playgroud)

  • @pmishev我[不这么认为](https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/dql-doctrine-query-language.html#dql-functions)。并非没有 [beberlei/DoctrineExtensions](https://github.com/beberlei/DoctrineExtensions)。 (2认同)