sql >> Databasteknik >  >> RDS >> Mysql

SQL:Vad är standardordningen efter för frågor?

Det finns ingen sådan ordning. Taget från http://forums.mysql.com/read .php?21,239471,239688#msg-239688

  • Var inte beroende av beställning när ORDER BY saknas.

  • Ange alltid ORDER BY om du vill ha en viss beställning -- i vissa situationer kan motorn eliminera ORDER BY på grund av hur den gör något annat steg.

  • GROUP BY tvingar ORDER BY. (Detta är ett brott mot standarden. Det kan undvikas genom att använda ORDER BY NULL.)

SELECT * FROM tbl -- Detta kommer att göra en "tabellskanning". Om tabellen aldrig har haft några DELETEs/REPLACEs/UPDATES, kommer posterna att råka vara i insättningsordningen, därav det du observerade.

Om du hade gjort samma uttalande med en InnoDB-tabell, skulle de ha levererats i PRIMARY KEY-ordning, inte INSERT-ordning. Återigen, detta är en artefakt av den underliggande implementeringen, inte något att bero på.



  1. Hur får man skillnaden mellan två rader för ett kolumnfält?

  2. Varför använda en LÄS UNENGÅNGAD isoleringsnivå?

  3. Hur får jag id:t efter INSERT i MySQL-databasen med Python?

  4. Bilagor i Oracle Applications R12