Warum müssen Sie selbst erstellte Spalten (z. B. "1 als Zahl auswählen") nach HAVING und nicht WHERE in MySQL platzieren?
WHERE
wird vor GROUP BY
angewendet , HAVING
wird danach angewendet (und kann nach Aggregaten filtern).
Im Allgemeinen können Sie in keiner dieser Klauseln auf Aliase verweisen, aber auf MySQL
ermöglicht die Referenzierung von SELECT
Ebenenaliase in GROUP BY
, ORDER BY
und HAVING
.
Und gibt es irgendwelche Nachteile, anstatt "WHERE 1" zu machen (die ganze Definition statt eines Spaltennamens zu schreiben)
Wenn Ihr berechneter Ausdruck keine Aggregate enthält, fügen Sie ihn in WHERE
ein -Klausel wird höchstwahrscheinlich effizienter sein.