Как использовать более расширенные параметры в конструкторе запросов Doctrine «orderBy()»?Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как использовать более расширенные параметры в конструкторе запросов Doctrine «orderBy()»?

Сообщение Anonymous »

Я пытаюсь использовать естественную сортировку в MySQL с помощью построителя запросов Doctor. Но у функции orderBy() нет нужных мне параметров.
Это запрос, который мне нужно передать в Doctory:

Код: Выделить всё

SELECT * FROM `ouvidoria`
ORDER BY CAST(RIGHT(`id`, LENGTH(`id`)-3) AS UNSIGNED) DESC;
Я пробовал следующее:

Код: Выделить всё

public function getLastKeyOfOrigin($origin) {
$data = $this->getRepository()->findOneBy(['origin'=>$origin->getId()]);
$select = $this->em->createQueryBuilder();
$select->select('o')
->from($this->entityPath, 'o')
->where("o.origin = :origin")
->setParameter('origin', $origin)
->orderBy('CAST(RIGHT(o.id, LENGTH(o.id)-3) AS UNSIGNED)', 'DESC')
->setMaxResults('1');
return $select->getQuery()->getOneOrNullResult();
}
что выдает следующую ошибку:

Тип: Doctrine\ORM\Query\QueryException
Сообщение: [Синтаксическая ошибка] строка 0, столбец 79: Ошибка: ожидаемая известная функция, получено значение CAST


Подробнее здесь: https://stackoverflow.com/questions/567 ... rs-orderby
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»