Подтвердить что ты не робот

Доктрина: выбор заявления с использованием равных не принимается

Согласно DDC-2204 issue, в котором говорится

[Order by With Equals] поддерживается включением условия в предложение SELECT, сглаживание его, а затем его использование. Возможно, вам придется использовать "AS HIDDEN name", чтобы он не появлялся в результате

после DQL должно быть возможно:

SELECT main.id = 1 AS test FROM Entity main ORDER BY test

Однако, когда я пытаюсь это сделать (используя 2.4), я получаю

Error: Expected Doctrine\ORM\Query\Lexer::T_FROM, got '='

Кажется, что предложенный разработчиком метод помещения условия в SELECT не работает. Является ли это ошибкой и/или есть другой способ выбора и/или упорядочения по условию.

4b9b3361

Ответ 1

Можно использовать оператор case:

SELECT (CASE WHEN main.id = 1 THEN 1 ELSE 0 END) AS test FROM Entity main ORDER BY test

Ответ 2

Я не уверен, если я правильно понимаю эту статью, но, похоже, она ссылается на условие в предложении order by:

SELECT main.id AS test FROM Entity main ORDER BY test = 1