Proč musíte v MySQL umisťovat sloupce, které sami vytvoříte (například „vyberte 1 jako číslo“) po HAVING a ne KDE?
WHERE
se použije před GROUP BY
, HAVING
se použije po (a může filtrovat podle agregátů).
Obecně platí, že na aliasy můžete odkazovat v žádné z těchto klauzulí, ale v MySQL
umožňuje odkazování SELECT
aliasy úrovní v GROUP BY
, ORDER BY
a HAVING
.
A existují nějaké nevýhody namísto provádění "WHERE 1" (zapsání celé definice místo názvu sloupce)
Pokud váš vypočítaný výraz neobsahuje žádné agregáty, vložte jej do WHERE
klauzule bude s největší pravděpodobností účinnější.