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' 带有消息 '[Syntax Error] line 0, col 100: Error: Expected end of string, got '('' in ......

有人知道如何为 Doctrine2 编写此查询吗?

4

1 回答 1

-1

After long time struggeling, I realized that I needed to write out the query using 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 回答