sql >> Databasteknik >  >> RDS >> Mysql

Mysql:Resultatordningen med välj från skiljer sig från ordningen för resultat med välj * från

Detta är korrekt och designmässigt:om du inte ber om sortering, stör servern inte med sortering (sorteringen kan vara en dyr operation), och den kommer att returnera raderna i den ordning den anser lämplig. Utan en begärd beställning kan det sätt på vilket posterna ordnas till och med skilja sig från en fråga till nästa (även om det inte är alltför troligt).

Ordningen är definitivt inte slumpmässig - det är bara på vilket sätt raderna kommer ut ur frågan, och som du ser kan även mindre ändringar ändra denna av-ordning avsevärt. Denna "odefinierade" ordning är implementeringsberoende, oförutsägbar och bör inte förlitas på.

Om du vill att elementen ska beställas, använd ORDER BY klausul (det är dess syfte) - t.ex.

SELECT name FROM difficulties ORDER BY name ASC;

Det kommer alltid att returnera resultatet sorterat efter namn, i stigande ordning. Eller, om du vill ha dem sorterade efter primärnyckeln, sist överst, använd:

SELECT name FROM difficulties ORDER BY id DESC;

Du kan till och med sortera efter funktion - om du faktiskt vill slumpmässig ordning, gör detta (varning:hemsk prestation med stora bord):

SELECT name FROM difficulties ORDER BY RAND();

För mer information se den här handledningen och dokumentationen .



  1. Hur kan jag använda mysql i C++?

  2. pgpredict – Predictive analytics i PostgreSQL

  3. Hur man får rekord med maxvärde i MySQL

  4. php password_verify fungerar inte med databasen