sql >> Database >  >> RDS >> Mysql

SQL:wat is de standaardvolgorde van query's?

Een dergelijke bestelling is niet aanwezig. Overgenomen van http://forums.mysql.com/read .php?21,239471,239688#msg-239688

  • Hang niet af van de bestelling wanneer ORDER BY ontbreekt.

  • Geef altijd ORDER BY op als u een bepaalde volgorde wilt -- in sommige situaties kan de engine de ORDER BY elimineren vanwege een andere stap.

  • GROUP BY krachten ORDER BY. (Dit is een overtreding van de standaard. Het kan worden vermeden door ORDER BY NULL te gebruiken.)

SELECT * FROM tbl -- dit zal een "tafelscan" uitvoeren. Als de tabel nog nooit VERWIJDEREN/VERVANGEN/UPDATE's heeft gehad, zullen de records toevallig in de invoegvolgorde staan, vandaar wat u hebt waargenomen.

Als u dezelfde instructie had gedaan met een InnoDB-tabel, zouden ze zijn afgeleverd in de volgorde PRIMARY KEY, niet in INSERT-volgorde. Nogmaals, dit is een artefact van de onderliggende implementatie, niet iets om van afhankelijk te zijn.



  1. Hoe kan ik alleen werktijd teruggeven van reserveringen in PostgreSql?

  2. SQL Union – Een uitgebreide gids over de UNION-operator

  3. Een Oracle-database migreren van AWS EC2 naar AWS RDS, deel 2

  4. PLSQL :NIEUW en :OUD