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.
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With