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.
  • Wat zijn DESC- en ASC-trefwoorden?

    DESC- en ASC-trefwoordenASC is de korte vorm voor oplopend DESC- en ASC-trefwoordenMySQL DESC is de korte vorm voor aflopend
    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

    • 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.

    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 email
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.

DESC- en ASC-voorbeeld

Dezelfde zoekopdracht in oplopende volgorde

SELECTEER * UIT leden BESTEL OP geboortedatum ASC

DESC- en ASC-voorbeeld

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 email
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 email
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.

DESC- en ASC-voorbeeld

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.