OBJEDNEJTE DO v MySQL: Dotaz DESC & ASC s PŘÍKLADEM

Řazení výsledků

Pomocí příkazu SELECT byly výsledky vráceny ve stejném pořadí, v jakém byly záznamy přidány do databáze. Toto je výchozí pořadí řazení. V této části se podíváme na to, jak můžeme třídit výsledky dotazů. Řazení je jednoduše přeuspořádání výsledků dotazů zadaným způsobem. Třídění lze provádět na jednom sloupci nebo na více než jednom sloupci. Lze to provést na datových typech čísel, řetězců i data.

Co je ORDER BY in MySQL?

MySQL SEŘADIT PODLE se používá ve spojení s dotazem SELECT k řádnému řazení dat. The MySQL Klauzule ORDER BY se používá k řazení sad výsledků dotazu ve vzestupném nebo sestupném pořadí.

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

ZDE

  • "příkaz SELECT... " je běžný výběrový dotaz
  • “ | “ představuje alternativy
  • “[KDE podmínka | GROUP BY `field_name(s)` HAVING podmínka” je volitelná podmínka používaná k filtrování sad výsledků dotazu.
  • "SEŘADIT PODLE" provádí řazení sady výsledků dotazu
  • “[ASC | DESC]“ je klíčové slovo používané k řazení sad výsledků ve vzestupném nebo sestupném pořadí. Poznámka ASC se používá jako výchozí.
  • Co jsou klíčová slova DESC a ASC?

    Klíčová slova DESC a ASCASC je zkrácená forma pro vzestupně Klíčová slova DESC a ASCMySQL DESC je zkrácená forma pro sestupně
    Používá se k řazení výsledků dotazu ve stylu shora dolů. Používá se k řazení výsledků dotazu ve stylu zdola nahoru
    Při práci s datovými typy data se v horní části seznamu zobrazuje nejstarší datum. . Při práci s typy dat se v horní části seznamu zobrazuje nejnovější datum.
    Při práci s numerickými datovými typy jsou nejnižší hodnoty zobrazeny v horní části seznamu. Při práci s numerickými datovými typy jsou nejvyšší hodnoty zobrazeny v horní části sady výsledků dotazu.
    Při práci s datovými typy řetězců se sada výsledků dotazu třídí od těch, které začínají písmenem A až po písmeno Z. Při práci s datovými typy řetězců je sada výsledků dotazu setříděna od těch, které začínají písmenem Z až po písmeno A.

    Klíčová slova SQL DESC i ASC se používají společně s příkazem SELECT a MySQL doložka ORDER BY.


    Syntaxe DESC a ASC

    Klíčové slovo SQL DESC řazení má následující základní syntaxi.

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

    ZDE

    • SELECT {fieldName(s) | *} FROM tableName(s) je příkaz obsahující pole a tabulky, ze kterých se získá výsledná sada.
    • [KDE podmínka] je volitelný, ale lze jej použít k filtrování dat podle dané podmínky.
    • SEŘADIT PODLE fieldname(s) je povinné a je to pole, podle kterého se má řazení provést. The MySQL Klíčové slovo DESC určuje, že řazení má být v sestupném pořadí.
    • [OMEZIT] je volitelná, ale lze ji použít k omezení počtu výsledků vrácených ze sady výsledků dotazu.

    Příklady:

    Podívejme se nyní na praktický příklad –

    SELECT * FROM members;

    Spuštění výše uvedeného skriptu v MySQL workbench proti myflixdb nám dává následující výsledky uvedené níže.

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


Předpokládejme, že marketingové oddělení chce podrobnosti o členech uspořádané v sestupném pořadí podle data narození. To jim pomůže včas odeslat blahopřání k narozeninám. Uvedený seznam můžeme získat provedením dotazu jako níže –

SELECT * FROM members ORDER BY date_of_birth DESC;

Spuštění výše uvedeného skriptu v MySQL workbench proti myflixdb nám dává následující výsledky uvedené níže.

Příklad DESC a ASC

Stejný dotaz ve vzestupném pořadí

SELECT * FROM členů ORDER BY datum_narození ASC

Příklad DESC a ASC

Poznámka: Hodnoty NULL znamenají žádné hodnoty (nikoli nulu nebo prázdný řetězec). Sledujte způsob jejich třídění.

Další příklady

Podívejme se na následující řazení SQL podle skriptu, který uvádí všechny záznamy členů.

SELECT * FROM `members`;

Spuštění výše uvedeného skriptu poskytne následující výsledky uvedené níže.

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


Předpokládejme, že chceme získat seznam, který třídí sadu výsledků dotazu pomocí pole pohlaví, použili bychom níže uvedený skript.

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

Jako první byli zobrazeni „Ženští“ členové následovaní „Mužskými“ členy, protože když je použita klauzule ORDER BY DESC bez určení ASC nebo MySQL Klíčové slovo DESC, ve výchozím nastavení, MySQL seřadil sadu výsledků dotazu ve vzestupném pořadí.

Podívejme se nyní na příklad, který dělá řazení pomocí dvou sloupců; první je tříděny in vzestupně ve výchozím nastavení, zatímco druhý sloupec je tříděny in sestupné pořadí.

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

Spuštění výše uvedeného skriptu v MySQL workbench proti myflixdb dává následující výsledky.

Příklad DESC a ASC

Sloupec pohlaví byl ve výchozím nastavení seřazen vzestupně, zatímco sloupec data narození byl seřazen explicitně sestupně

Proč můžeme používat DESC a ASC?

Předpokládejme, že chceme vytisknout historii plateb pro člena videotéky, abychom pomohli zodpovědět dotazy z recepce, nebylo by logičtější nechat vytisknout platby v sestupném chronologickém pořadí počínaje poslední platbou až po dřívější platbu?

DESC v SQL je klíčové slovo, které se v takových situacích hodí. Můžeme napsat dotaz, který seřadí seznam sestupně podle data platby.

Předpokládejme, že marketingové oddělení chce získat seznam filmů podle kategorií, které mohou členové použít k rozhodování o tom, které filmy jsou k dispozici v knihovně při půjčování filmů, nebylo by logičtější podívat se seřadit názvy kategorií filmů a název vzestupně tak, aby mohou členové rychle vyhledat informace ze seznamu?

Klíčové slovo ASC se v takových situacích hodí; můžeme získat seznam filmů seřazený podle názvu kategorie a názvu filmu ve vzestupném pořadí.

Shrnutí

  • Řazení výsledků dotazu je přeuspořádání řádků vrácených ze sady výsledků dotazu buď ve vzestupném nebo sestupném pořadí.
  • Klíčové slovo DESC v SQL se používá k seřazení sady výsledků dotazu v sestupném pořadí.
  • Klíčové slovo ASC se používá k seřazení sady výsledků dotazu ve vzestupném pořadí.
  • DESC i ASC fungují ve spojení s klíčovým slovem ORDER BY. Lze je také použít v kombinaci s jinými klíčovými slovy jako např klauzule WHERE a LIMIT
  • Výchozí pro ORDER BY, pokud nebylo nic explicitně specifikováno, je ASC.