ЗАМОВИТИ В MySQL: DESC & ASC-запит із EXAMPLE

Зміст:

Anonim

Сортування результатів

За допомогою команди SELECT результати поверталися в тому самому порядку, коли записи були додані до бази даних. Це порядок сортування за замовчуванням. У цьому розділі ми розглянемо, як можна відсортувати результати запитів. Сортування - це просто реорганізація результатів нашого запиту заданим способом. Сортування може виконуватися на одному стовпці або на декількох стовпцях. Це можна зробити для числа, рядків, а також типів даних дати.

Що таке ORDER BY у MySQL?

MySQL ORDER BY використовується разом із запитом SELECT для впорядкованого сортування даних. Речення MySQL ORDER BY використовується для сортування наборів результатів запиту у порядку зростання або зменшення.

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

ТУТ

  • "Вираз SELECT ..." - звичайний запит вибору
  • "|" представляє альтернативи
  • "[WHERE умова | GROUP BY` ім'я_поля_поля `HAVING умова" є необов'язковою умовою, яка використовується для фільтрування наборів результатів запиту.
  • "ORDER BY" виконує сортування набору результатів запиту
  • "[ASC | DESC]" - це ключове слово, що використовується для сортування наборів результатів у порядку зростання або зменшення. Примітка ASC використовується за замовчуванням.

Що таке DESC та ASC Ключові слова?

ASC - це коротка форма для зростання

MySQL DESC - це коротка форма для спадання

Він використовується для сортування результатів запиту за стилем зверху вниз.

Він використовується для сортування результатів запиту за стилем знизу вгору

При роботі з типами даних дати найперша дата відображається вгорі списку.

. При роботі з типами дат, найпізніша дата відображається вгорі списку.

При роботі з числовими типами даних найнижчі значення відображаються вгорі списку.

При роботі з числовими типами даних найвищі значення відображаються вгорі набору результатів запиту.

Під час роботи з рядковими типами даних набір результатів запиту сортується від тих, що починаються з літери A, що переходить до літери Z.

При роботі з рядковими типами даних набір результатів запиту сортується від тих, що починаються з літери Z, що спускається до букви А.

Ключові слова SQL DESC та ASC використовуються разом із оператором SELECT та реченням MySQL ORDER BY.

Синтаксис DESC та ASC

Ключове слово SQL DESC сортування має наступний базовий синтаксис.

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

ТУТ

  • ВИБЕРІТЬ {імена полів |. | *} FROM tableName (s) - це оператор, що містить поля та таблиці (таблиці), з яких потрібно отримати набір результатів.
  • [WHERE умова] є необов’язковою, але може використовуватися для фільтрування даних відповідно до заданої умови.
  • ПОРЯДОК ПО Іменам (полям) поля є обов’язковим і є полем, за яким має виконуватися сортування. Ключове слово MySQL DESC вказує, що сортування має відбуватися у порядку зменшення.
  • [LIMIT] необов’язковий, але може використовуватися для обмеження кількості результатів, повернутих із набору результатів запиту.

Приклади:

Давайте зараз розглянемо практичний приклад -

SELECT * FROM members;

Виконання вищезазначеного сценарію в робочому середовищі MySQL проти myflixdb дає нам такі результати, показані нижче.

 
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

Припустимо, відділ маркетингу хоче, щоб дані про членів були розташовані в порядку зменшення дати народження. Це допоможе їм своєчасно надіслати привітання з днем ​​народження. Ми можемо отримати згаданий список, виконавши запит, як показано нижче -

SELECT * FROM members ORDER BY date_of_birth DESC;

Виконання вищезазначеного сценарію в робочому середовищі MySQL проти myflixdb дає нам такі результати, показані нижче.

Той самий запит за зростанням

ВИБЕРІТЬ * ВІД учасників ЗАМОВИТИ ЗА датою_народження ASC

Примітка: NULL значення означає відсутність значень (не нуль або порожній рядок). Спостерігайте за способом їх сортування.

Більше прикладів

Давайте розглянемо наступний сценарій, в якому перераховані всі записи учасників.

SELECT * FROM `members`;

Виконання вищезазначеного сценарію дає наступні результати, показані нижче.

 
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

Припустимо, ми хочемо отримати список, який сортує набір запитів за допомогою гендерного поля, ми використаємо сценарій, показаний нижче.

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

Спочатку відображаються "Жіночі" члени, а потім "Чоловічі". Це відбувається тому, що, коли використовується пункт ORDER BY DESC без зазначення ключового слова ASC або MySQL DESC, за замовчуванням MySQL сортує набір запитів у порядку зростання.

Давайте зараз розглянемо приклад, який здійснює сортування за двома стовпцями ; перший з них упорядковано в порядку зростання за замовчуванням , в той час як другий стовпець сортується в порядку убування.

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

Виконання вищезазначеного сценарію в робочому середовищі MySQL проти myflixdb дає такі результати.

Статевий стовпець було відсортовано за зростанням за замовчуванням, тоді як стовпець дати народження відсортований у порядку зменшення

Чому ми можемо використовувати DESC та ASC?

Припустимо, ми хочемо надрукувати історію платежів для учасника відеотеки, щоб допомогти відповідати на запити на стійці реєстрації, чи не було б більш логічним друкувати платежі у спадному хронологічному порядку, починаючи з нещодавнього платежу до попереднього платежу?

DESC в SQL - це ключове слово, яке стає в нагоді в таких ситуаціях. Ми можемо написати запит, який сортує список за спаданням за датою оплати.

Припустимо, що відділ маркетингу хоче отримати список фільмів за категоріями, за допомогою яких учасники можуть вирішити, які фільми доступні в бібліотеці при прокаті фільмів, чи не було б логічнішим виглядати сортування назв та назв категорій фільмів за зростанням, щоб члени можуть швидко шукати інформацію зі списку?

Ключове слово ASC стає в нагоді в таких ситуаціях; ми можемо отримати список фільмів, відсортований за назвою категорії та назвою фільму у порядку зростання.

Резюме

  • Сортування результатів запиту - це переупорядкування рядків, повернутих із набору результатів запиту, за зростанням або за спаданням.
  • Ключове слово DESC у SQL використовується для сортування набору запитів у порядку зменшення.
  • Ключове слово ASC використовується для сортування набору запитів у порядку зростання.
  • І DESC, і ASC працюють разом із ключовим словом ORDER BY. Вони також можуть використовуватися в поєднанні з іншими ключовими словами, такими як речення WHERE та LIMIT
  • За замовчуванням для ORDER BY, коли нічого явно не вказано, є ASC.