Эта работа:
$qb = $this->em->createQueryBuilder(); $qb->select("abs(u.code) as code") ->from("User", "u") ->orderBy("code","ASC") ->getQuery() ->getArrayResult();
Это не работает:
$qb = $this->em->createQueryBuilder(); $qb->select("u.code") ->from("User", "u") ->orderBy("abs(u.code)","ASC") ->getQuery() ->getArrayResult();
Ошибка:
Синтаксическая ошибка] строка 0, столбец 118: Ошибка: ожидаемый конец строки, полученный '('
Функция родной доктрины abs работает только на избранной части статута и не работает по порядку.
обсерватория:
1-) Я избегаю использовать NativeQuery.
2-) u.code является varchar fild на mysql и должен быть varchar (несколько раз числовой и некоторая строка строки), и мне нужно заказать тогда, как число в числовом случае.
Любая помощь?
Решенный atma thank abs()
realy не работает непосредственно в порядке, но как псевдоним.
soluction
SELECT field1,field2,abs(field3) AS abs_field3 FROM table ORDER BY abs_field3 ASC
Obs: Это ограничение доктрины, а не ограничение mysql, mysql suports abs прямо по порядку.