BESTEL DOOR binnen MySQL: DESC & ASC Query met VOORBEELD
Resultaten sorteren
Met behulp van de opdracht SELECT werden de resultaten geretourneerd in dezelfde volgorde waarin de records aan de database waren toegevoegd. Dit is de standaard sorteervolgorde. In deze sectie bekijken we hoe we onze zoekopdrachtresultaten kunnen sorteren. Sorteren is eenvoudigweg het herschikken van onze zoekopdrachtresultaten op een bepaalde manier. Sorteren kan op een enkele kolom of op meer dan één kolom worden uitgevoerd. Het kan worden gedaan op nummer-, strings- en datumgegevenstypen.
Wat is BESTEL DOOR in MySQL?
MySQL BESTELLING DOOR wordt gebruikt in combinatie met de SELECT-query om gegevens op een ordelijke manier te sorteren. De MySQL De ORDER BY-clausule wordt gebruikt om de queryresultatensets in oplopende of aflopende volgorde te sorteren.
SELECT statement... [WHERE condition | GROUP BY `field_name(s)` HAVING condition] ORDER BY `field_name(s)` [ASC | DESC];
HIER
- "SELECT-instructie... " is de reguliere selectiequery
- ” | “ vertegenwoordigt alternatieven
- “[WAAR voorwaarde | GROUP BY `field_name(s)` HAVING condition” is de optionele voorwaarde die wordt gebruikt om de queryresultatensets te filteren.
- “BESTEL DOOR” voert het sorteren van de queryresultaten uit
- “[ASC | BESCHRIJVING]” is het trefwoord dat wordt gebruikt om resultatensets in oplopende of aflopende volgorde te sorteren. Opmerking ASC wordt als standaard gebruikt.
- SELECTEER {veldnaam(en) | *} FROM tabelNaam(en) is de instructie die de velden en tabel(len) bevat waaruit de resultatenset moet worden opgehaald.
- [WHERE-voorwaarde] is optioneel, maar kan worden gebruikt om de gegevens te filteren op basis van de gegeven voorwaarde.
- BESTELLING DOOR veldnaam(en) is verplicht en is het veld waarop de sortering moet worden uitgevoerd. De MySQL Het trefwoord DESC geeft aan dat de sortering in aflopende volgorde moet plaatsvinden.
- [BEGRENZING] is optioneel, maar kan worden gebruikt om het aantal resultaten te beperken dat wordt geretourneerd door de queryresultatenset.
Wat zijn DESC- en ASC-trefwoorden?
![]() |
![]() |
---|---|
Het wordt gebruikt om de zoekresultaten van boven naar beneden te sorteren. | Het wordt gebruikt om de zoekopdrachtresultaten van onder naar boven te sorteren |
Wanneer u met datumgegevenstypen werkt, wordt de vroegste datum bovenaan de lijst weergegeven. | . Wanneer u met datumtypen werkt, wordt de laatste datum bovenaan de lijst weergegeven. |
Wanneer u met numerieke gegevenstypen werkt, worden de laagste waarden bovenaan de lijst weergegeven. | Wanneer u met numerieke gegevenstypen werkt, worden de hoogste waarden bovenaan de queryresultatenset weergegeven. |
Wanneer u met stringgegevenstypen werkt, wordt de resultatenset van de zoekopdracht gesorteerd van de resultaten die beginnen met de letter A en oplopen tot de letter Z. | Wanneer u met stringgegevenstypen werkt, wordt de resultatenset van de zoekopdracht gesorteerd van de resultaten die beginnen met de letter Z en aflopen tot de letter A. |
Zowel de SQL DESC- als de ASC-trefwoorden worden samen gebruikt in combinatie met de SELECT-instructie en MySQL ORDER BY-clausule.
DESC- en ASC-syntaxis
Het SQL DESC sort-trefwoord heeft de volgende basis-syntaxis.
SELECT {fieldName(s) | *} FROM tableName(s) [WHERE condition] ORDER BY fieldname(s) ASC /DESC [LIMIT N]
HIER
Voorbeelden:
Laten we nu eens naar een praktisch voorbeeld kijken –
SELECT * FROM members;
Voer het bovenstaande script uit in MySQL workbench vergeleken met myflixdb geeft ons de volgende resultaten, zoals hieronder weergegeven.
membership_number | full_names | gender | date_of_birth | physical_address | postal_address | contct_number | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Female | 21-07-1980 | First Street Plot No 4 | Private Bag | 0759 253 542 | janetjones@yagoo.cm |
2 | Janet Smith Jones | Female | 23-06-1980 | Melrose 123 | NULL | NULL | jj@fstreet.com |
3 | Robert Phil | Male | 12-07-1989 | 3rd Street 34 | NULL | 12345 | rm@tstreet.com |
4 | Gloria Williams | Female | 14-02-1984 | 2nd Street 23 | NULL | NULL | NULL |
5 | Leonard Hofstadter | Male | NULL | Woodcrest | NULL | 845738767 | NULL |
6 | Sheldon Cooper | Male | NULL | Woodcrest | NULL | 976736763 | NULL |
7 | Rajesh Koothrappali | Male | NULL | Woodcrest | NULL | 938867763 | NULL |
8 | Leslie Winkle | Male | 14-02-1984 | Woodcrest | NULL | 987636553 | NULL |
9 | Howard Wolowitz | Male | 24-08-1981 | SouthPark | P.O. Box 4563 | 987786553 |
Laten we veronderstellen dat de marketingafdeling de ledengegevens in afnemende volgorde van geboortedatum wil hebben. Dit zal hen helpen om tijdig verjaardagsgroeten te versturen. We kunnen de genoemde lijst krijgen door een query uit te voeren zoals hieronder –
SELECT * FROM members ORDER BY date_of_birth DESC;
Voer het bovenstaande script uit in MySQL workbench vergeleken met myflixdb geeft ons de volgende resultaten, zoals hieronder weergegeven.
Dezelfde zoekopdracht in oplopende volgorde
SELECTEER * UIT leden BESTEL OP geboortedatum ASC
Opmerking: NULL-waarden betekent dat er geen waarden zijn (niet nul of een lege tekenreeks). Observeer de manier waarop ze zijn gesorteerd.
Meer voorbeelden
Laten we het volgende SQL-sorteerscript bekijken dat alle lidrecords weergeeft.
SELECT * FROM `members`;
Wanneer u bovenstaand script uitvoert, krijgt u de volgende resultaten.
membership_number | full_names | gender | date_of_birth | physical_address | postal_address | contct_number | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Female | 21-07-1980 | First Street Plot No 4 | Private Bag | 0759 253 542 | janetjones@yagoo.cm |
2 | Janet Smith Jones | Female | 23-06-1980 | Melrose 123 | NULL | NULL | jj@fstreet.com |
3 | Robert Phil | Male | 12-07-1989 | 3rd Street 34 | NULL | 12345 | rm@tstreet.com |
4 | Gloria Williams | Female | 14-02-1984 | 2nd Street 23 | NULL | NULL | NULL |
5 | Leonard Hofstadter | Male | NULL | Woodcrest | NULL | 845738767 | NULL |
6 | Sheldon Cooper | Male | NULL | Woodcrest | NULL | 976736763 | NULL |
7 | Rajesh Koothrappali | Male | NULL | Woodcrest | NULL | 938867763 | NULL |
8 | Leslie Winkle | Male | 14-02-1984 | Woodcrest | NULL | 987636553 | NULL |
9 | Howard Wolowitz | Male | 24-08-1981 | SouthPark | P.O. Box 4563 | 987786553 | NULL |
Stel dat we een lijst willen krijgen die de resultatenset van de zoekopdracht sorteert met behulp van het geslachtsveld, dan zouden we het onderstaande script gebruiken.
SELECT * FROM `members` ORDER BY `gender`;
membership_number | full_names | gender | date_of_birth | physical_address | postal_address | contct_number | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Female | 21-07-1980 | First Street Plot No 4 | Private Bag | 0759 253 542 | janetjones@yagoo.cm |
2 | Janet Smith Jones | Female | 23-06-1980 | Melrose 123 | NULL | NULL | jj@fstreet.com |
4 | Gloria Williams | Female | 14-02-1984 | 2nd Street 23 | NULL | NULL | NULL |
3 | Robert Phil | Male | 12-07-1989 | 3rd Street 34 | NULL | 12345 | rm@tstreet.com |
5 | Leonard Hofstadter | Male | NULL | Woodcrest | NULL | 845738767 | NULL |
6 | Sheldon Cooper | Male | NULL | Woodcrest | NULL | 976736763 | NULL |
7 | Rajesh Koothrappali | Male | NULL | Woodcrest | NULL | 938867763 | NULL |
8 | Leslie Winkle | Male | 14-02-1984 | Woodcrest | NULL | 987636553 | NULL |
9 | Howard Wolowitz | Male | 24-08-1981 | SouthPark | P.O. Box 4563 | 987786553 | NULL |
De leden van het type ‘vrouw’ worden eerst weergegeven, gevolgd door de leden van het type ‘mann’. Dit komt doordat de ORDER BY DESC-clausule wordt gebruikt zonder de ASC of MySQL DESC-trefwoord is standaard MySQL heeft de zoekresultaatset in oplopende volgorde gesorteerd.
Laten we nu eens kijken naar een voorbeeld waarbij de sorteren met behulp van twee kolommen; de eerste is naargelang in oplopende volgorde standaard terwijl de tweede kolom dat is naargelang in aflopende volgorde.
SELECT * FROM `members` ORDER BY `gender`,`date_of_birth` DESC;
Voer het bovenstaande script uit in MySQL workbench tegen myflixdb geeft de volgende resultaten.
De geslachtskolom werd standaard in oplopende volgorde gesorteerd, terwijl de kolom geboortedatum expliciet in aflopende volgorde werd gesorteerd
Waarom kunnen we DESC en ASC gebruiken?
Stel dat we een betalingsgeschiedenis willen afdrukken voor een lid van de videotheek om vragen van de receptie te kunnen beantwoorden. Zou het dan niet logischer zijn om de betalingen in aflopende chronologische volgorde te laten afdrukken, beginnend bij de recente betaling tot aan de eerdere betaling?
DESC in SQL is een sleutelwoord dat in dergelijke situaties handig kan zijn. We kunnen een query schrijven die de lijst in aflopende volgorde sorteert op basis van de betalingsdatum.
Stel dat de marketingafdeling een lijst met films per categorie wil hebben die leden kunnen gebruiken om te beslissen welke films beschikbaar zijn in de bibliotheek wanneer ze films huren, zou het dan niet logischer zijn om de namen en titels van de filmcategorieën oplopend te sorteren, zodat leden snel de informatie uit de lijst kunnen opzoeken?
Het trefwoord ASC komt in dergelijke situaties goed van pas; we kunnen de filmlijst gesorteerd krijgen op categorienaam en filmtitel in oplopende volgorde.
Samenvatting
- Het sorteren van queryresultaten is het opnieuw rangschikken van de rijen die worden geretourneerd uit een queryresultatenset, in oplopende of aflopende volgorde.
- Het trefwoord DESC in SQL wordt gebruikt om de resultatenset van de zoekopdracht in aflopende volgorde te sorteren.
- Het trefwoord ASC wordt gebruikt om de reeks zoekresultaten in oplopende volgorde te sorteren.
- Zowel DESC als ASC werken in combinatie met het trefwoord ORDER BY. Ze kunnen ook worden gebruikt in combinatie met andere trefwoorden zoals WHERE-clausule en LIMIET
- De standaardwaarde voor ORDER BY als er niets expliciet is opgegeven, is ASC.