1

バージョン番号を保持するテーブルがあり、自然にソートされたものを読み上げたいと思います。
これは生のSQLでは問題ありません。

SELECT * FROM versions ORDER BY REPLACE(version, '.', '')+0 DESC

しかし、Doctrine2で次のようにクエリを作成すると、次のようになります。

$qry = $this->createQueryBuilder('v')
  ->select('v')
  ->orderBy("REPLACE(v.version, '.', '')+0", 'DESC');

私は得るだけです

致命的なエラー:キャッチされない例外'Doctrine \ ORM \ Query \QueryException'とメッセージ'[構文エラー]行0、列100:エラー:文字列の終わりが必要です。

Doctrine2のこのクエリを書く方法を知っている人はいますか?

4

1 に答える 1

-1

長い間苦労した後、私は次のコマンドを使用してクエリを書き出す必要があることに気付きましたNativeQuery

$rsm = new \Doctrine\ORM\Query\ResultSetMapping();
// do some result mapping here ....

$query = $this->_em->createNativeQuery("SELECT v.* FROM versions v ORDER BY REPLACE(v.version, '.', '')+0 DESC", $rsm);

$versions = $query->getResult();
于 2012-06-08T15:32:44.297 に答える