Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Doctrine: Select statement using equals not accepted

According to DDC-2204 issue which states

[Order by With Equals] is supported by including the condition in the SELECT clause, aliasing it, then using it. You might need to use "AS HIDDEN name" to prevent it from appearing in the result

following DQL should be possible:

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

However, when I try this (using 2.4), I get

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

It seems the developer-advised method of putting the condition into SELECT does not work. Is this a bug and / or is there another way of selecting and / or ordering by condition.

like image 388
Olia.Bn Avatar asked Sep 10 '14 09:09

Olia.Bn


1 Answers

It is possible to use case statement:

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

like image 104
Aurelijus Rozenas Avatar answered Nov 02 '22 03:11

Aurelijus Rozenas