sql >> Databáze >  >> RDS >> Mysql

MySQL, ORDER BY pořadí vložení, žádné sloupce řazení

Neexistuje žádná záruka, že řádky budou vráceny v jakémkoli konkrétním pořadí bez ORDER BY klauzule v dotazu.

Zvažte jednoduchý dotaz, který vrátí všechny sloupce všech řádků v tabulce. Například:

SELECT * FROM mytable ; 

U tohoto dotazu je pravděpodobné, že MySQL provede úplné prohledání tabulky od začátku tabulky. Je tedy pravděpodobné, že řádky budou vráceny v pořadí, v jakém se nacházejí ve fyzickém úložišti.

To může zhruba odpovídat pořadí, ve kterém byly vkládány řádky, pokud nedošlo k žádnému odstranění, aktualizaci ani reorganizaci, kde bylo místo pro vložený řádek později uvolněno a znovu použito k uložení nově vloženého řádku.

Toto chování však NENÍ zaručeno.

Chcete-li vrátit řádky v pořadí, v jakém byly vloženy, musí dotaz specifikovat pořadí, ve kterém mají být řádky vráceny, a to zahrnutím ORDER BY doložka.

Aby byly řádky vráceny v "pořadí vložení", to znamená, že dotaz musí mít tyto informace k dispozici nebo je musí být schopen odvodit. Pro jednoduchý dotaz na jednu tabulku to znamená, že informace musí být uloženy v řádku.



  1. classNotFound Výjimka při použití JDBC pro MYSQL na Tomcat v Eclipse

  2. Tabulka výsledků SQL, shoda v druhé tabulce typu SET

  3. Jak používat operátor větší než s datem?

  4. Vytvoření GeoJson v php z MySql pro použití s ​​MapBox javascript API