sql >> Database >  >> RDS >> Mysql

SQL ORDER OP meerdere kolommen

Sorteren in een ORDER BY wordt gedaan door de eerste kolom en vervolgens door elke extra kolom in de opgegeven instructie.

Denk bijvoorbeeld aan de volgende gegevens:

Column1    Column2
=======    =======
1          Smith
2          Jones
1          Anderson
3          Andrews

De vraag

SELECT Column1, Column2 FROM thedata ORDER BY Column1, Column2

zou eerst sorteren op alle waarden in Column1

en sorteer de kolommen vervolgens op Column2 om dit te produceren:

Column1    Column2
=======    =======
1          Anderson
1          Smith
2          Jones
3          Andrews

Met andere woorden, de gegevens worden eerst gesorteerd in Column1 volgorde, en vervolgens elke subset (Column1 rijen met 1 als hun waarde) worden gesorteerd in volgorde van de tweede kolom.

Het verschil tussen de twee uitspraken die je hebt gepost, is dat de rijen in de eerste eerst worden gesorteerd op prod_price (prijsvolgorde, van laag naar hoog), en vervolgens op volgorde van naam (wat betekent dat als twee artikelen dezelfde prijs hebben, degene met de lagere alfawaarde voor naam als eerste wordt vermeld), terwijl de tweede op naamvolgorde wordt gesorteerd alleen (wat betekent dat de prijzen in volgorde verschijnen op basis van de prod_name zonder rekening te houden met de prijs).



  1. Formatteer datum in MySQL SELECT als ISO 8601

  2. Hoe bestel ik een MySQL-query op een specifieke kolom?

  3. SQL Server-indexen:belangrijkste vereisten, prestatie-effecten en overwegingen

  4. Groeperen op twee velden gebruiken en tellen in SQL