Search code examples
doctrine-ormdoctrinedql

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.


Solution

  • 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