2014-09-10 14 views
10

Nach DDC-2204 issue nicht akzeptiert, dieLehre: Select-Anweisung equals

[von mit Auftrag Equals] heißt es wird erreicht, indem die Bedingung in der SELECT-Klausel nicht unterstützt, es Aliasing, indem Sie es dann. Möglicherweise müssen „AS HIDDEN Namen“ verwenden, um es

folgenden DQL möglich sein sollen, im Ergebnis zu hindern angezeigt:

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

Allerdings, wenn ich versuche, diese (mit 2.4), erhalte ich

Es scheint, dass die vom Entwickler empfohlene Methode, die Bedingung in SELECT zu setzen, nicht funktioniert. Ist das ein Fehler und/oder gibt es eine andere Möglichkeit, nach Bedingungen auszuwählen und/oder zu sortieren?

+0

Ich fand: http://stackoverflow.com/questions/15257538/how-to-order-by-a-computed-value-in-dql –

Antwort

3

Es ist möglich case Anweisung:

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

0

Ich bin nicht sicher, ob ich diesen Artikel richtig verstanden hat, aber es scheint mit der Bedingung in der Reihenfolge von Klausel zu verweisen:

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

... was nicht funktioniert in Doctrine und der vorgeschlagene Lösung - es in SELECT-Klausel setzen - tut auch nicht, anscheinend . –