Selve udførelsen af MySQL-sætninger er lidt vanskelig. Standarden specificerer dog rækkefølgen af fortolkning af elementer i forespørgslen. Dette er dybest set i den rækkefølge, du angiver, selvom jeg tror HAVING og GROUP BY kunne komme efter SELECT :
FROMklausulWHEREklausulSELECTklausulGROUP BYklausulHAVINGklausulORDER BYklausul
Dette er vigtigt for at forstå, hvordan forespørgsler parses. Du kan ikke bruge et kolonnealias defineret i en SELECT i WHERE klausul, for eksempel fordi WHERE er parset før SELECT . På den anden side kan et sådant alias være i ORDER BY klausul.
Hvad angår den faktiske udførelse, er det virkelig overladt til optimeringsværktøjet. For eksempel:
. . .
GROUP BY a, b, c
ORDER BY NULL
og
. . .
GROUP BY a, b, c
ORDER BY a, b, c
begge har virkningen af ORDER BY bliver slet ikke eksekveret -- og derfor ikke udført efter GROUP BY (i det første tilfælde er effekten at fjerne sortering fra GROUP BY og i den anden er effekten ikke at gøre mere end GROUP BY allerede gør).