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

SQL:Jaké je výchozí pořadí dotazů?

Žádný takový řád neexistuje. Převzato z http://forums.mysql.com/read .php?21,239471,239688#msg-239688

  • Když chybí ORDER BY, nezávisejte na objednávce.

  • Vždy zadejte ORDER BY, pokud chcete konkrétní objednávku -- v některých situacích může motor ORDER BY eliminovat kvůli tomu, jak dělá nějaký jiný krok.

  • GROUP BY síly ORDER BY. (Toto je porušení standardu. Tomu se lze vyhnout použitím ORDER BY NULL.)

SELECT * FROM tbl -- to provede "skenování tabulky". Pokud tabulka nikdy neměla žádná DELETE/REPLACES/UPDATE, záznamy budou náhodou v pořadí vložení, tedy to, co jste pozorovali.

Pokud byste udělali stejný příkaz s tabulkou InnoDB, byly by doručeny v objednávce PRIMARY KEY, nikoli v objednávce INSERT. Opět se jedná o artefakt základní implementace, nikoli něco, na čem by bylo závislé.



  1. Jak vložit datový rámec pandy přes mysqldb do databáze?

  2. Jak nainstalovat SQL Server na Mac s VirtualBoxem

  3. Jak změnit vlastnictví všech objektů v konkrétním schématu v PostgreSQL?

  4. PostgreSQL:běžící počet řádků pro dotaz „po minutě“