2016-05-16 15 views
1

我正在使用Symfony和Doctrine構建一個項目,但是我對整個設置仍然陌生。使用原則按FIELD()排序,有可能嗎?

簡而言之,我需要根據select中使用的數組的順序來排序結果集。

我相信可以使用FIELD()函數來完成,但是從我的調查來看,它看起來不像使用Doctrine的可能性。

例如,我難倒,我怎麼能像下面的查詢利用FIELD()(如果它甚至有可能):

return $this 
      ->createQueryBuilder('a') 
      ->where('a.identifier IN (:identifiers)') 
      ->setParameter('identifiers',$identifiers) 
      ->getQuery() 
      ->getResult(); 
+1

似乎可以使用DoctrineExtensions至[寄存器字段(),爲自定義的方法](http://stackoverflow.com/a/10164133/1078488)。請注意,使用擴展可能會破壞其他RDBS類型的兼容性。 – JimL

+0

[XY問題](https://meta.stackexchange.com/questions/66377)。 – eggyal

+0

我很高興接受任何解決方案,這只是我最初的想法。 – cosmicsafari

回答

0

我使用學說版本1.2.4,並使用下面的查詢按特定值排序。

$query->orderBy('FIELD(str,str1,str2,str3,...)'); 
相關問題