(Forklarer tabet af ORDER BY )
SQL-standarden siger i bund og grund, at en underforespørgsel er et uordnet sæt rækker. Dette indebærer, at optimeringsværktøjet frit kan ignorere ORDER BY i tabellen 'afledt':FROM ( SELECT ... ORDER BY ) . I "nylige" versioner af MySQL og MariaDB, sådanne ORDER BYs bliver droppet. Der er andre tilfælde, hvor ORDER BY ignoreres.
I nogle situationer (ikke sikker på denne), tilføjer en LIMIT 99999999 (stort tal) efter ORDER BY narre Optimizer til at udføre ORDER BY . Det er dog stadig gratis at ignorere "ordren" senere.
En generel regel for MySQL:Undgå underforespørgsler. (Der er tilfælde, hvor underforespørgsler er hurtigere, men ikke dine.)
En stærk regel:Du skal har en ORDER BY på den yderste, hvis du ønsker, at resultaterne skal sorteres.
Hvis du havde tilføjet LIMIT 3 til den afledte tabel i din første forespørgsel, vil du kun få CHARLES, DAVID, JAMES, men ikke nødvendigvis i den rækkefølge . Det vil sige, du skal bruge to ORDER BYs - en i den afledte tabel, en til allersidst.