BESTÄLL INN MySQL: DESC & ASC-fråga med EXEMPEL

Sortering av resultat

Med kommandot SELECT returnerades resultaten i samma ordning som posterna lades till i databasen. Detta är standardsorteringsordningen. I det här avsnittet kommer vi att titta på hur vi kan sortera våra frågeresultat. Sortering är helt enkelt att ordna om våra sökresultat på ett specificerat sätt. Sortering kan utföras på en kolumn eller på mer än en kolumn. Det kan göras på antal, strängar och datumdatatyper.

Vad är ORDER BY in MySQL?

MySQL SORTERA EFTER används i samband med SELECT-frågan för att sortera data på ett ordnat sätt. De MySQL ORDER BY-satsen används för att sortera frågeresultatuppsättningarna i antingen stigande eller fallande ordning.

SELECT statement... [WHERE condition | GROUP BY `field_name(s)` HAVING condition] ORDER BY `field_name(s)` [ASC | DESC];

HÄR

  • "SELECT-sats... " är den vanliga urvalsfrågan
  • ” | " representerar alternativ
  • "[VART villkor | GRUPPER EFTER `field_name(s)` HAVING condition” är det valfria villkoret som används för att filtrera frågeresultatuppsättningarna.
  • "SORTERA EFTER" utför sorteringen av frågeresultatuppsättningen
  • “[ASC | DESC]” är nyckelordet som används för att sortera resultatuppsättningar i antingen stigande eller fallande ordning. Notera ASC används som standard.
  • Vad är DESC- och ASC-nyckelord?

    DESC och ASC nyckelordASC är kortformen för stigande DESC och ASC nyckelordMySQL DESC är kortformen för fallande
    Den används för att sortera frågeresultaten i en stil från topp till botten. Den används för att sortera frågeresultaten i en stil från botten till topp
    När du arbetar med datumdatatyper visas det tidigaste datumet överst i listan. . När du arbetar med datumtyper visas det senaste datumet överst i listan.
    När du arbetar med numeriska datatyper visas de lägsta värdena överst i listan. När du arbetar med numeriska datatyper visas de högsta värdena överst i frågeresultatuppsättningen.
    När du arbetar med strängdatatyper sorteras frågeresultatuppsättningen från de som börjar med bokstaven A som går upp till bokstaven Z. När du arbetar med strängdatatyper sorteras frågeresultatuppsättningen från de som börjar med bokstaven Z och går ner till bokstaven A.

    Både SQL DESC- och ASC-nyckelorden används tillsammans i kombination med SELECT-satsen och MySQL ORDER BY klausul.


    DESC och ASC syntax

    SQL DESC-sorteringsnyckelordet har följande grundläggande syntax.

    SELECT {fieldName(s) | *} FROM tableName(s) [WHERE condition] ORDER BY fieldname(s) ASC /DESC [LIMIT N]

    HÄR

    • VÄLJ {fieldName(s) | *} FRÅN tabellnamn är satsen som innehåller fälten och tabellerna som resultatuppsättningen ska hämtas från.
    • [WHERE-tillstånd] är valfritt men kan användas för att filtrera data enligt det givna villkoret.
    • SORTERA EFTER fältnamn(en) är obligatoriskt och är det fält som sorteringen ska utföras på. De MySQL DESC nyckelord anger att sorteringen ska ske i fallande ordning.
    • [BEGRÄNSA] är valfritt men kan användas för att begränsa antalet resultat som returneras från frågeresultatuppsättningen.

    Exempel:

    Låt oss nu titta på ett praktiskt exempel –

    SELECT * FROM members;

    Exekvera skriptet ovan i MySQL arbetsbänk mot myflixdb ger oss följande resultat som visas nedan.

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


Låt oss anta att marknadsavdelningen vill ha medlemmarnas uppgifter ordnade i fallande ordning efter födelsedatum. Detta kommer att hjälpa dem att skicka födelsedagshälsningar i rätt tid. Vi kan få nämnda lista genom att utföra en fråga som nedan -

SELECT * FROM members ORDER BY date_of_birth DESC;

Exekvera skriptet ovan i MySQL arbetsbänk mot myflixdb ger oss följande resultat som visas nedan.

DESC och ASC exempel

Samma fråga i stigande ordning

VÄLJ * FRÅN medlemmar BESTÄLL EFTER födelsedatum ASC

DESC och ASC exempel

Obs: NULL-värden betyder inga värden (inte noll eller tom sträng) . Observera hur de har sorterats.

Fler exempel

Låt oss överväga följande SQL sortering efter skript som listar alla medlemsposter.

SELECT * FROM `members`;

Att köra skriptet ovan ger följande resultat som visas nedan.

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


Anta att vi vill få en lista som sorterar frågeresultatuppsättningen med hjälp av könsfältet, skulle vi använda skriptet som visas nedan.

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

"Kvinnliga" medlemmar har visats först följt av "Manliga" medlemmar, detta beror på att när ORDER BY DESC-satsen används utan att specificera ASC eller MySQL DESC nyckelord, som standard, MySQL har sorterat frågeresultatuppsättningen i stigande ordning.

Låt oss nu titta på ett exempel som gör det sortering med två kolumner; den första är sorterad in stigande ordning som standard medan den andra kolumnen är sorterad in fallande ordning.

SELECT * FROM `members` ORDER BY `gender`,`date_of_birth` DESC;

Exekvera skriptet ovan i MySQL arbetsbänk mot myflixdb ger följande resultat.

DESC och ASC exempel

Kolumnen för kön sorterades i stigande ordning som standard medan kolumnen för födelsedatum sorterades uttryckligen i fallande ordning

Varför kan vi använda DESC och ASC?

Anta att vi vill skriva ut en betalningshistorik för en medlem i videobiblioteket för att hjälpa till med att svara på frågor från receptionen, vore det inte mer logiskt att få betalningarna utskrivna i fallande kronologisk ordning från och med den senaste betalningen till den tidigare betalningen?

DESC i SQL är ett nyckelord som är praktiskt i sådana situationer. Vi kan skriva en fråga som sorterar listan i fallande ordning med hjälp av betalningsdatum.

Anta att marknadsavdelningen vill få en lista över filmer efter kategori som medlemmarna kan använda för att bestämma vilka filmer som är tillgängliga i biblioteket när de hyr filmer, vore det inte mer logiskt att sortera filmkategoriernas namn och titel i stigande riktning så att kan medlemmar snabbt slå upp informationen från listan?

Nyckelordet ASC kommer väl till pass i sådana situationer; vi kan få filmlistan sorterad efter kategorinamn och filmtitel i stigande ordning.

Sammanfattning

  • Att sortera frågeresultat är att omarrangera raderna som returneras från en frågeresultatuppsättning antingen i stigande eller fallande ordning.
  • Nyckelordet DESC i SQL används för att sortera frågeresultatuppsättningen i fallande ordning.
  • Nyckelordet ASC används för att sortera frågeresultatuppsättningen i stigande ordning.
  • Både DESC och ASC fungerar tillsammans med nyckelordet ORDER BY. De kan också användas i kombination med andra nyckelord som t.ex VAR klausul och LIMIT
  • Standard för ORDER BY när inget har specificerats är ASC.

Sammanfatta detta inlägg med: