Dlaczego musisz umieszczać kolumny, które sam tworzysz (na przykład "wybierz 1 jako liczbę") po MIEJĄC, a nie GDZIE w MySQL?
WHERE
jest stosowany przed GROUP BY
, HAVING
jest stosowany po (i może filtrować według agregatów).
Ogólnie rzecz biorąc, w żadnej z tych klauzul nie można odwoływać się do aliasów, ale w MySQL
umożliwia odwoływanie się do SELECT
aliasy poziomów w GROUP BY
, ORDER BY
i HAVING
.
I czy są jakieś wady zamiast robienia "GDZIE 1" (pisanie całej definicji zamiast nazwy kolumny)
Jeśli wyliczone wyrażenie nie zawiera żadnych agregatów, umieść je w WHERE
klauzula będzie najprawdopodobniej bardziej skuteczna.