ORDER BY a MySQL-ben: DESC & ASC lekérdezés PÉLDA

Tartalomjegyzék:

Anonim

Eredmények rendezése

A SELECT paranccsal az eredményeket ugyanabban a sorrendben adták vissza, ahogyan a rekordokat is felvették az adatbázisba. Ez az alapértelmezett rendezési sorrend. Ebben a szakaszban megvizsgáljuk, hogyan tudjuk rendezni a lekérdezés eredményeit. A rendezés egyszerűen lekérdezési eredményeink meghatározott módon történő átrendezése. A rendezés elvégezhető egyetlen oszlopon vagy egynél több oszlopon. Meg lehet tenni a szám, a karakterláncok, valamint a dátum adattípusok esetében.

Mi az a ORDER BY a MySQL-ben?

A MySQL ORDER BY a SELECT lekérdezéssel együtt használható az adatok rendezett rendezéséhez. A MySQL ORDER BY záradék a növekvő vagy csökkenő sorrendben rendezi a lekérdezés eredményhalmazait.

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

ITT

  • A "SELECT utasítás ..." a szokásos választási lekérdezés
  • A "|" alternatívákat jelent
  • "[WHERE feltétel | GROUP BY" mező_neve (i) "HAVING feltétel" a választható feltétel, amely a lekérdezés eredményhalmazainak szűrésére szolgál.
  • Az "ORDER BY" végrehajtja a lekérdezés eredményhalmazának rendezését
  • "[ASC | DESC]" az a kulcsszó, amellyel az eredményhalmazokat növekvő vagy csökkenő sorrendben lehet rendezni. Megjegyzés: Az ASC- t használja alapértelmezettként.

Mik azok a DESC és ASC kulcsszavak?

Az ASC a felemelkedés rövid formája

A MySQL DESC az ereszkedés rövid formája

Felülről lefelé stílusban rendezi a lekérdezés eredményeit.

A lekérdezés eredményeinek alsó és felső stílusú rendezésére szolgál

Dátum adattípusok használatakor a legkorábbi dátum jelenik meg a lista tetején.

. Dátumtípusok esetén a legfrissebb dátum jelenik meg a lista tetején.

Numerikus adattípusokkal dolgozva a legalacsonyabb értékek jelennek meg a lista tetején.

Numerikus adattípusokkal dolgozva a legmagasabb értékek jelennek meg a lekérdezés eredményhalmazának tetején.

Karakterlánc-adattípusokkal végzett munka során a lekérdezés eredményhalmaza az A betűvel kezdődő és a Z betűig felfelé rendeződik.

Karakterlánc-adattípusokkal végzett munka során a lekérdezés eredményhalmaza a Z betűvel kezdődő és az A betűig levő sorba van rendezve.

Az SQL DESC és az ASC kulcsszavakat együtt használják a SELECT utasítással és a MySQL ORDER BY záradékkal.

DESC és ASC szintaxis

Az SQL DESC rendezési kulcsszó a következő alapvető szintaxissal rendelkezik.

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

ITT

  • SELECT {mezőnév (ek) | *} A FROM tableName (s) egy olyan utasítás, amely azokat a mezőket és táblázatokat tartalmazza, amelyekből az eredménykészletet megkapja.
  • A [WHERE feltétel] opcionális, de felhasználható az adatok szűrésére az adott feltételnek megfelelően.
  • A ORDER BY mezőnév (ek) kötelező kitölteni, és ez az a mező, amelyen a rendezést el kell végezni. A MySQL DESC kulcsszó megadja, hogy a rendezés csökkenő sorrendben történjen.
  • A [LIMIT] opcionális, de használható a lekérdezés eredményhalmazából visszaküldött eredmények számának korlátozására.

Példák:

Most nézzünk meg egy gyakorlati példát -

SELECT * FROM members;

A fenti parancsfájl futtatása a MySQL munkapadban a myflixdb fájlhoz a következő eredményeket nyújtja nekünk.

 
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

Tegyük fel, hogy a marketing részleg a tagok adatait a születési dátum csökkenő sorrendjében szeretné elrendezni. Ez segít nekik időben elküldeni a születésnapi üdvözletet. Az említett listát az alábbihoz hasonló lekérdezés végrehajtásával kaphatjuk meg -

SELECT * FROM members ORDER BY date_of_birth DESC;

A fenti parancsfájl futtatása a MySQL munkapadban a myflixdb fájlhoz a következő eredményeket nyújtja nekünk.

Ugyanez a lekérdezés növekvő sorrendben

KIVÁLASZT * FROM tagokból ORDER BY date_of_birth ASC

Megjegyzés: A NULL értékek nem jelentenek értékeket (nem nulla vagy üres karakterlánc). Figyelje meg a válogatás módját.

További példák

Vizsgáljuk meg a következő szkriptet, amely felsorolja az összes tag rekordot.

SELECT * FROM `members`;

A fenti parancsfájl végrehajtása az alábbi eredményeket mutatja.

 
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

Tegyük fel, hogy egy listát szeretnénk kapni, amely a gender mező segítségével rendezi a lekérdezés eredményhalmazát, az alább látható szkriptet használnánk.

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

Először a "női" tagokat, majd a "férfi" tagokat jelenítették meg, ennek oka, hogy amikor az ORDER BY DESC záradékot az ASC vagy a MySQL DESC kulcsszó megadása nélkül használják, alapértelmezés szerint a MySQL növekvő sorrendbe rendezte a lekérdezés eredményét.

Most nézzünk meg egy példát, amely két oszlop segítségével rendezi a rendezést ; az elsőt rendezve a növekvő sorrendben alapértelmezés szerint, míg a második oszlop rendezve a csökkenő sorrendben.

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

A fenti parancsfájl futtatása a MySQL munkapadban a myflixdb fájlhoz a következő eredményeket adja.

A nem oszlopot alapértelmezés szerint növekvő sorrendbe rendezték, míg a születési dátum oszlopot kifejezetten csökkenő sorrendbe rendezték

Miért használhatjuk a DESC-t és az ASC-t?

Tegyük fel, hogy egy videotár tagjának fizetési előzményeit akarjuk kinyomtatni, hogy segítsünk a recepción található kérdések megválaszolásában. Nem lenne logikusabb, ha a befizetéseket csökkenő időrendben nyomtatnák, a legutóbbi befizetéssel kezdődően a korábbi fizetésig?

A DESC az SQL-ben olyan kulcsszó, amely hasznos lehet ilyen helyzetekben. Írhatunk egy lekérdezést, amely csökkenő sorrendben rendezi a listát a fizetési dátum alapján.

Tegyük fel, hogy a marketing osztály kategóriák szerinti listát akar kapni, amelyek alapján a tagok eldönthetik, mely filmek állnak rendelkezésre a könyvtárban a filmek kölcsönzésekor, nem lenne-e logikusabb a filmkategóriák nevének és címének növekvő sorrendben történő keresése a tagok gyorsan megkereshetik az információkat a listáról?

Az ASC kulcsszó jól jön ilyen helyzetekben; megkaphatjuk a filmlistát kategória és film címe szerint növekvő sorrendben.

Összegzés

  • A lekérdezési eredmények rendezése a lekérdezés eredményhalmazából visszaadott sorok átrendezését növekvő vagy csökkenő sorrendben.
  • A DESC kulcsszó az SQL-ben a lekérdezés eredményhalmazának csökkenő sorrendbe rendezésére szolgál.
  • Az ASC kulcsszó a növekvő sorrendben rendezi a lekérdezés eredményhalmazát.
  • A DESC és az ASC egyaránt a ORDER BY kulcsszóval működik. Használhatók más kulcsszavakkal együtt is, például WHERE záradékkal és LIMIT-kel
  • Az alapértelmezett ORDER BY, ha semmit nem határoztak meg kifejezetten, az ASC.