Существует возможность выполнить следующий запрос для сортировки по значению:
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;