ORDER BY w MySQL: DESC & Zapytanie ASC z EXAMPLE

Spisie treści:

Anonim

Sortowanie wyników

Za pomocą polecenia SELECT wyniki zostały zwrócone w tej samej kolejności, w jakiej rekordy zostały dodane do bazy danych. To jest domyślna kolejność sortowania. W tej sekcji przyjrzymy się, jak możemy sortować wyniki naszych zapytań. Sortowanie to po prostu zmiana kolejności wyników zapytania w określony sposób. Sortowanie można przeprowadzić na jednej kolumnie lub na więcej niż jednej kolumnie. Można to zrobić na liczbach, ciągach znaków, a także na typach danych daty.

Co to jest ORDER BY w MySQL?

MySQL ORDER BY jest używany w połączeniu z zapytaniem SELECT do sortowania danych w uporządkowany sposób. Klauzula MySQL ORDER BY służy do sortowania zestawów wyników zapytań w porządku rosnącym lub malejącym.

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

TUTAJ

  • „Instrukcja SELECT…” to zwykłe zapytanie wybierające
  • „|” reprezentuje alternatywy
  • „[WHERE warunek | GROUP BY„ nazwa_pól (y) „HAVING warunek” to opcjonalny warunek używany do filtrowania zestawów wyników zapytania.
  • „ORDER BY” wykonuje sortowanie zestawu wyników zapytania
  • „[ASC | DESC]” to słowo kluczowe używane do sortowania zestawów wyników w porządku rosnącym lub malejącym. Uwaga ASC jest używane jako domyślne.

Co to są słowa kluczowe DESC i ASC?

ASC to krótka forma wznoszenia

MySQL DESC to krótka forma określająca malejąco

Służy do sortowania wyników zapytania w stylu od góry do dołu.

Służy do sortowania wyników zapytania w stylu od dołu do góry

Podczas pracy z typami danych daty najwcześniejsza data jest wyświetlana u góry listy.

. Podczas pracy z typami dat najnowsza data jest wyświetlana u góry listy.

Podczas pracy z numerycznymi typami danych najniższe wartości są wyświetlane na górze listy.

Podczas pracy z liczbowymi typami danych najwyższe wartości są wyświetlane u góry zestawu wyników zapytania.

Podczas pracy z ciągami danych zestaw wyników zapytania jest sortowany od tych, które zaczynają się od litery A, a kończą na literę Z.

Podczas pracy z ciągowymi typami danych zestaw wyników zapytania jest sortowany od tych, które zaczynają się od litery Z, a kończą na literę A.

Zarówno słowa kluczowe SQL DESC, jak i ASC są używane razem w połączeniu z instrukcją SELECT i klauzulą ​​MySQL ORDER BY.

Składnia DESC i ASC

Słowo kluczowe SQL DESC sort ma następującą podstawową składnię.

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

TUTAJ

  • SELECT {fieldName (s) | *} FROM tableName (s) to instrukcja zawierająca pola i tabele, z których ma zostać pobrany zestaw wyników.
  • [WHERE condition] jest opcjonalne, ale można go użyć do filtrowania danych zgodnie z podanym warunkiem.
  • ORDER BY nazwa (-y) pól jest obowiązkowa i jest polem, na którym ma być wykonane sortowanie. Słowo kluczowe MySQL DESC określa, że ​​sortowanie ma być w porządku malejącym.
  • [LIMIT] jest opcjonalny, ale można go użyć do ograniczenia liczby wyników zwracanych z zestawu wyników zapytania.

Przykłady:

Spójrzmy teraz na praktyczny przykład -

SELECT * FROM members;

Wykonanie powyższego skryptu w środowisku MySQL na myflixdb daje nam następujące wyniki pokazane poniżej.

 
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

Załóżmy, że dział marketingu chce, aby szczegóły dotyczące członków były uporządkowane malejąco według daty urodzenia. Pomoże im to wysłać życzenia urodzinowe w odpowiednim czasie. Możemy uzyskać wspomnianą listę, wykonując zapytanie takie jak poniżej -

SELECT * FROM members ORDER BY date_of_birth DESC;

Wykonanie powyższego skryptu w środowisku MySQL na myflixdb daje nam następujące wyniki pokazane poniżej.

To samo zapytanie w porządku rosnącym

WYBIERZ * OD członków ORDER BY date_of_birth ASC

Uwaga: wartości NULL oznaczają brak wartości (nie zero ani pusty ciąg). Obserwuj sposób, w jaki zostały posortowane.

Więcej przykładów

Rozważmy następujący skrypt, który zawiera listę wszystkich rekordów składowych.

SELECT * FROM `members`;

Wykonanie powyższego skryptu daje następujące wyniki pokazane poniżej.

 
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

Załóżmy, że chcemy uzyskać listę, która sortuje zestaw wyników zapytania za pomocą pola płci, użylibyśmy poniższego skryptu.

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

Najpierw wyświetlono członków „żeńskich”, a następnie członków „mężczyzn”, ponieważ w przypadku użycia klauzuli ORDER BY DESC bez określenia słowa kluczowego ASC lub MySQL DESC, MySQL posortował zestaw wyników zapytania w porządku rosnącym.

Spójrzmy teraz na przykład, w którym sortowanie odbywa się przy użyciu dwóch kolumn ; pierwsza z nich jest domyślnie sortowana w kolejności rosnącej, natomiast druga kolumna jest sortowana w kolejności malejącej.

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

Wykonanie powyższego skryptu w środowisku roboczym MySQL na myflixdb daje następujące wyniki.

Kolumna płci była domyślnie sortowana rosnąco, podczas gdy kolumna z datą urodzenia była jawnie sortowana malejąco

Dlaczego możemy używać DESC i ASC?

Załóżmy, że chcemy wydrukować historię płatności dla członka biblioteki wideo, aby pomóc w odpowiedzi na pytania z recepcji, czy nie byłoby bardziej logiczne, aby płatności były drukowane w malejącej kolejności chronologicznej, począwszy od ostatniej płatności do wcześniejszej płatności?

DESC w SQL to słowo kluczowe, które przydaje się w takich sytuacjach. Możemy napisać zapytanie, które posortuje listę w porządku malejącym według daty płatności.

Załóżmy, że dział marketingu chce uzyskać listę filmów według kategorii, na podstawie której członkowie mogą zdecydować, które filmy są dostępne w bibliotece podczas wypożyczania filmów, czy nie byłoby bardziej logiczne posortować nazwy kategorii i tytuły rosnąco, tak aby członkowie mogą szybko wyszukiwać informacje na liście?

W takich sytuacjach przydatne jest słowo kluczowe ASC; możemy uzyskać listę filmów posortowaną według nazwy kategorii i tytułu filmu w porządku rosnącym.

Podsumowanie

  • Sortowanie wyników zapytania polega na ponownym rozmieszczaniu wierszy zwróconych z zestawu wyników zapytania w kolejności rosnącej lub malejącej.
  • Słowo kluczowe DESC w języku SQL służy do sortowania zestawu wyników zapytania w porządku malejącym.
  • Słowo kluczowe ASC służy do sortowania zestawu wyników zapytania w porządku rosnącym.
  • Zarówno DESC, jak i ASC działają w połączeniu ze słowem kluczowym ORDER BY. Można ich również używać w połączeniu z innymi słowami kluczowymi, takimi jak klauzula WHERE i LIMIT
  • Wartość domyślna ORDER BY, gdy nic nie zostało wyraźnie określone, to ASC.