Toto je správné a záměrné:pokud nepožádáte o řazení, server se s řazením neobtěžuje (třídění může být nákladná operace) a vrátí řádky v libovolném pořadí, které uzná za vhodné. Bez požadovaného pořadí se způsob řazení záznamů může dokonce lišit od jednoho dotazu k druhému (ačkoli to není příliš pravděpodobné).
Pořadí rozhodně není náhodné – jde jen o to, jakým způsobem vycházejí řádky z dotazu, a jak vidíte, i drobné úpravy mohou toto nepořadí výrazně změnit. Toto „nedefinované“ uspořádání je závislé na implementaci, je nepředvídatelné a nemělo by se na něj spoléhat.
Pokud chcete, aby byly prvky objednány, použijte ORDER BY
doložka (to je její účel) - např.
SELECT name FROM difficulties ORDER BY name ASC;
To vždy vrátí výsledek seřazený podle názvu ve vzestupném pořadí. Nebo, pokud je chcete seřadit podle primárního klíče, poslední nahoře, použijte:
SELECT name FROM difficulties ORDER BY id DESC;
Můžete dokonce třídit podle funkce – pokud vlastně chcete náhodné pořadí, udělejte toto (varování:příšerný výkon s velkými tabulkami):
SELECT name FROM difficulties ORDER BY RAND();
Další podrobnosti viz tento návod a dokumentace .