Doctrine 2 Query Builder abs Функция - PullRequest
       1

Doctrine 2 Query Builder abs Функция

2 голосов
/ 23 сентября 2011

Эта работа:

    $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 работает только на выбранной части описания и не работает с порядком по части.

Obs:

1-) Я избегаю использовать NativeQuery.

2-) u.code - это varchar-файл на mysql и должен быть varchar (иногда числовым, а иногдастрока), и мне нужно заказать, как число в числовом регистре.

Любая помощь?

1 Ответ

2 голосов
/ 23 сентября 2011

Решено, atma thank abs() Реально не работает напрямую в порядке, а как псевдоним.

soluction

SELECT field1,field2,abs(field3) AS abs_field3 
FROM table 
ORDER BY abs_field3 ASC

Obs: Это ограничение доктрины, а не ограничение mysqlmysql поддерживает abs напрямую по заказу по частям.

...