BESTÄLLA AV i MySQL: DESC & ASC-fråga med EXAMPLE

Innehållsförteckning:

Anonim

Sortera resultat

Med SELECT-kommandot 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 sökresultat. Sortering är att helt enkelt ordna om våra sökresultat på ett angivet sätt. Sortering kan utföras på en enda kolumn eller på mer än en kolumn. Det kan göras på nummer, strängar samt datumdatatyper.

Vad är ORDER BY i MySQL?

MySQL ORDER BY används tillsammans med SELECT-frågan för att sortera data på ett ordnat sätt. MySQL ORDER BY-satsen används för att sortera sökresultatuppsä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

  • "VÄLJ uttalande ..." är den vanliga frågan
  • "|" representerar alternativ
  • "[WHERE condition | GROUP BY` field_name (s) `HAVING condition" är det valfria villkor som används för att filtrera sökresultatuppsättningarna.
  • "ORDER BY" utför sorteringen av sökresultatuppsättningen
  • "[ASC | DESC]" är det nyckelord som används för att sortera resultatuppsättningar i antingen stigande eller fallande ordning. Obs! ASC används som standard.

Vad är DESC- och ASC-nyckelord?

ASC är den korta formen för stigande

MySQL DESC är den korta formen för nedåtgående

Den används för att sortera frågeresultaten i topp-till-botten-stil.

Den används för att sortera frågeresultaten i botten till topp stil

När du arbetar med datumdatatyper visas det tidigaste datumet högst upp i listan.

. När du arbetar med datumtyper visas det senaste datumet högst upp 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 högst upp i sökresultatuppsä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 som 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-satsen.

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 (er) är uttalandet som innehåller fälten och tabellerna från vilka resultatuppsättningen ska hämtas.
  • [WHERE condition] är valfritt men kan användas för att filtrera data enligt det angivna villkoret.
  • ORDER BY fältnamn (er) är obligatoriskt och är det fält som sorteringen ska utföras på. Nyckelordet MySQL DESC anger att sorteringen ska vara i fallande ordning.
  • [LIMIT] är valfritt men kan användas för att begränsa antalet resultat som returneras från sökresultatuppsättningen.

Exempel:

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

SELECT * FROM members;

Att utföra ovanstående skript i MySQL-arbetsbänken 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 This email address is being protected from spambots. You need JavaScript enabled to view it.
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL This email address is being protected from spambots. You need JavaScript enabled to view it.
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 This email address is being protected from spambots. You need JavaScript enabled to view it.
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 att medlemsuppgifterna ska ordnas i minskande ordning efter födelsedatum. Detta hjälper dem att skicka födelsedagshälsningar i rätt tid. Vi kan få den nämnda listan genom att utföra en fråga som nedan -

SELECT * FROM members ORDER BY date_of_birth DESC;

Att utföra ovanstående skript i MySQL-arbetsbänken mot myflixdb ger oss följande resultat som visas nedan.

Samma fråga i stigande ordning

VÄLJ * FRÅN medlemmar BESTÄLL EFTER datum_födsel ASC

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 skript som visar alla medlemsposter.

SELECT * FROM `members`;

Att utföra ovanstående skript 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 This email address is being protected from spambots. You need JavaScript enabled to view it.
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL This email address is being protected from spambots. You need JavaScript enabled to view it.
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 This email address is being protected from spambots. You need JavaScript enabled to view it.
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

Antag att vi vill få en lista som sorterar sökresultatuppsättningen med hjälp av könsfältet, vi skulle 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 This email address is being protected from spambots. You need JavaScript enabled to view it.
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL This email address is being protected from spambots. You need JavaScript enabled to view it.
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 This email address is being protected from spambots. You need JavaScript enabled to view it.
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 ange ASC- eller MySQL DESC-nyckelordet, har MySQL som standard sorterat sökresultatet i stigande ordning.

Låt oss nu titta på ett exempel som gör sorteringen med två kolumner ; den första sorteras i stigande ordning som standard medan den andra kolumnen sorteras i fallande ordning.

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

Att utföra ovanstående skript i MySQL-arbetsbänken mot myflixdb ger följande resultat.

Könskolumnen sorterades i stigande ordning som standard medan födelsedatum kolumnen sorterades i fallande ordning uttryckligen

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

Anta att vi vill skriva ut en betalningshistorik för en videobiblioteksmedlem för att svara på frågor från receptionen, skulle det inte vara mer logiskt att ha betalningarna tryckta i en fallande kronologisk ordning från och med den senaste betalningen till den tidigare betalningen?

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

Anta att marknadsavdelningen vill få en lista över filmer efter kategori som medlemmar kan använda för att bestämma vilka filmer som finns tillgängliga i biblioteket när de hyr film, skulle det inte vara mer logiskt att se sortera filmkategorins namn och titel i stigande så att medlemmar snabbt kan leta upp informationen från listan?

ASC-nyckelordet är till nytta i sådana situationer; vi kan få filmlistan sorterad efter kategorinamn och filmtitel i stigande ordning.

Sammanfattning

  • Sortering av sökresultat är att ordna om raderna som returneras från ett sökresultat, antingen i stigande eller fallande ordning.
  • Nyckelordet DESC i SQL används för att sortera frågeresultatet i fallande ordning.
  • ASC-nyckelordet 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 WHERE-sats och LIMIT
  • Standard för ORDER BY när inget har uttryckligen specificerats är ASC.