De daadwerkelijke uitvoering van MySQL-instructies is een beetje lastig. De standaard specificeert echter wel de volgorde van interpretatie van elementen in de query. Dit is in principe in de volgorde die je opgeeft, hoewel ik denk dat HAVING en GROUP BY kan komen na SELECT :
FROMclausuleWHEREclausuleSELECTclausuleGROUP BYclausuleHAVINGclausuleORDER BYclausule
Dit is belangrijk om te begrijpen hoe query's worden geparseerd. U kunt geen kolomalias gebruiken die is gedefinieerd in een SELECT in de WHERE clausule, bijvoorbeeld omdat de WHERE wordt geparseerd vóór de SELECT . Aan de andere kant kan zo'n alias in de ORDER BY . staan clausule.
Wat betreft de daadwerkelijke uitvoering, dat wordt echt overgelaten aan de optimizer. Bijvoorbeeld:
. . .
GROUP BY a, b, c
ORDER BY NULL
en
. . .
GROUP BY a, b, c
ORDER BY a, b, c
beide hebben het effect van de ORDER BY wordt helemaal niet uitgevoerd -- en dus niet uitgevoerd na de GROUP BY (in het eerste geval is het effect het verwijderen van de sortering uit de GROUP BY en in de tweede is het effect om niets meer te doen dan de GROUP BY al doet).