ragnar_ok
@ragnar_ok

Bitrix ORM: как сортировать по значению?

Существует возможность выполнить следующий запрос для сортировки по значению:
SELECT NAME FROM book ORDER BY FIELD (id, 5, 10, 15)

Bitrix ORM предлагает для этого runtime-поля:
$queryObj = BookTable::query()
    ->addSelect('NAME')
    ->addOrder('SORT')
    ->registerRuntimeField(
        new \Bitrix\Main\Entity\ExpressionField(
            'SORT',
            'FIELD(%s, 5, 10, 15)',
            'ID'
        )
    )
    ->exec()
;

Это работает.

Но необходимо выполнить такой запрос:
SELECT NAME FROM book ORDER BY FIELD (id, 5, id)

Как это сделать? Пытаюсь таким образом, но это не работает:
'FIELD(%s, 5, %s)',

Выводит: Mysql query error: (1064) You have an error in your SQL syntax;
  • Вопрос задан
  • 837 просмотров
Решения вопроса 1
'FIELD(%1$s, 5, %1$s)'
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы