Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

SQL:Qual é o Order By padrão das consultas?


Não existe tal ordem presente. Extraído de http://forums.mysql.com/read .php?21,239471,239688#msg-239688

  • Não dependa do pedido quando faltar ORDER BY.

  • Sempre especifique ORDER BY se você quiser um pedido específico -- em algumas situações, o mecanismo pode eliminar o ORDER BY por causa de como ele executa alguma outra etapa.
  • GROUP BY força ORDER BY. (Esta é uma violação do padrão. Pode ser evitada usando ORDER BY NULL.)

SELECT * FROM tbl -- isso fará uma "varredura de tabela". Se a tabela nunca teve DELETEs/REPLACEs/UPDATEs, os registros estarão na ordem de inserção, daí o que você observou.

Se você tivesse feito a mesma instrução com uma tabela InnoDB, eles teriam sido entregues na ordem PRIMARY KEY, não na ordem INSERT. Novamente, isso é um artefato da implementação subjacente, não algo do qual se depende.