Vlastní provádění příkazů MySQL je trochu složitější. Norma však specifikuje pořadí interpretace prvků v dotazu. Toto je v podstatě v pořadí, které určíte, i když si myslím, že HAVING a GROUP BY může následovat po SELECT :
FROMdoložkaWHEREdoložkaSELECTdoložkaGROUP BYdoložkaHAVINGdoložkaORDER BYdoložka
To je důležité pro pochopení toho, jak jsou analyzovány dotazy. Nemůžete použít alias sloupce definovaný v SELECT v WHERE klauzule, například, protože WHERE je analyzován před SELECT . Na druhou stranu takový alias může být v ORDER BY doložka.
Pokud jde o skutečné provedení, to je skutečně ponecháno na optimalizátoru. Například:
. . .
GROUP BY a, b, c
ORDER BY NULL
a
. . .
GROUP BY a, b, c
ORDER BY a, b, c
oba mají účinek ORDER BY se vůbec nespustí -- a tak se nespustí po GROUP BY (v prvním případě dojde k odstranění řazení z GROUP BY a ve druhém je výsledkem nedělat nic víc než GROUP BY už dělá).