ЗАМОВИТИ ЗА в MySQL: Запит DESC & ASC із ПРИКЛАДОМ
Результати сортування
За допомогою команди SELECT результати поверталися в тому ж порядку, в якому записи додавалися до бази даних. Це порядок сортування за замовчуванням. У цьому розділі ми розглянемо, як ми можемо сортувати результати наших запитів. Сортування – це просто перевпорядкування результатів нашого запиту визначеним способом. Сортування може бути виконано в одному стовпці або в кількох стовпцях. Це можна зробити з числами, рядками, а також типами даних дати.
Що таке ORDER BY в MySQL?
MySQL СОРТУВАТИ ЗА використовується в поєднанні із запитом SELECT для впорядкованого сортування даних. The MySQL Речення ORDER BY використовується для сортування наборів результатів запиту в порядку зростання або спадання.
SELECT statement... [WHERE condition | GROUP BY `field_name(s)` HAVING condition] ORDER BY `field_name(s)` [ASC | DESC];
ТУТ
- "Оператор SELECT... " це звичайний запит на вибірку
- ” | « представляє альтернативи
- “[умова WHERE | ГРУПУВАТИ ЗА `назва_поля`, МАЮЧУ умову” це необов'язкова умова, яка використовується для фільтрації наборів результатів запиту.
- "СОРТУВАТИ ЗА" виконує сортування набору результатів запиту
- “[ASC | DESC]" це ключове слово, яке використовується для сортування наборів результатів у порядку зростання або спадання. Примітка ASC використовується за замовчуванням.
- ВИБРАТИ {назви полів | *} FROM tableName(s) це оператор, що містить поля та таблицю(и), з яких потрібно отримати набір результатів.
- [Умова WHERE] є необов’язковим, але його можна використовувати для фільтрації даних відповідно до заданої умови.
- СОРТУВАТИ ЗА fieldname(s) є обов’язковим і є полем для сортування. The MySQL Ключове слово DESC вказує, що сортування має відбуватися в порядку спадання.
- [ОБМЕЖЕННЯ] є необов’язковим, але його можна використовувати для обмеження кількості результатів, що повертаються з набору результатів запиту.
Що таке ключові слова DESC і ASC?
Він використовується для сортування результатів запиту зверху вниз. | Він використовується для сортування результатів запиту знизу вгору |
Під час роботи з типами даних дати найраніша дата відображається вгорі списку. | . Під час роботи з типами дат остання дата відображається вгорі списку. |
Під час роботи з числовими типами даних найнижчі значення відображаються вгорі списку. | Під час роботи з числовими типами даних найвищі значення відображаються у верхній частині набору результатів запиту. |
Під час роботи з рядковими типами даних набір результатів запиту сортується від тих, що починаються з літери A до літери Z. | Під час роботи з рядковими типами даних набір результатів запиту сортується від тих, що починаються з літери Z, аж до літери A. |
Ключові слова 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]
ТУТ
Приклади:
Давайте тепер розглянемо практичний приклад –
SELECT * FROM members;
Виконання наведеного вище сценарію в MySQL workbench проти myflixdb дає нам такі результати, наведені нижче.
membership_number | full_names | gender | date_of_birth | physical_address | postal_address | contct_number | |
---|---|---|---|---|---|---|---|
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 |
Припустімо, що відділ маркетингу хоче, щоб відомості про учасників були розташовані в порядку зменшення дати народження. Це допоможе їм вчасно привітати з днем народження. Ми можемо отримати зазначений список, виконавши запит, як показано нижче –
SELECT * FROM members ORDER BY date_of_birth DESC;
Виконання наведеного вище сценарію в MySQL workbench проти myflixdb дає нам такі результати, наведені нижче.
Той самий запит у порядку зростання
ВИБРАТИ * FROM учасників ORDER BY date_of_birth ASC
Примітка: значення NULL означає відсутність значень (не нуль або порожній рядок). Зверніть увагу на те, як вони були відсортовані.
Більше прикладів
Давайте розглянемо наступне сортування SQL за сценарієм, який містить список усіх записів-членів.
SELECT * FROM `members`;
Виконання наведеного вище сценарію дає такі результати, показані нижче.
membership_number | full_names | gender | date_of_birth | physical_address | postal_address | contct_number | |
---|---|---|---|---|---|---|---|
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 |
Припустімо, що ми хочемо отримати список, який сортує набір результатів запиту за допомогою поля gender, ми використаємо сценарій, показаний нижче.
SELECT * FROM `members` ORDER BY `gender`;
membership_number | full_names | gender | date_of_birth | physical_address | postal_address | contct_number | |
---|---|---|---|---|---|---|---|
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 |
«Жіночі» члени відображаються спочатку, а потім «Чоловічі» члени, це відбувається тому, що коли речення ORDER BY DESC використовується без зазначення ASC або MySQL Ключове слово DESC, за замовчуванням, MySQL відсортував набір результатів запиту в порядку зростання.
Давайте тепер розглянемо приклад, який робить сортування за допомогою двох стовпців; перший є відсортованого in в порядку зростання за замовчуванням, тоді як другий стовпець відсортованого in у порядку зменшення.
SELECT * FROM `members` ORDER BY `gender`,`date_of_birth` DESC;
Виконання наведеного вище сценарію в MySQL workbench проти myflixdb дає такі результати.
Стовпець статі за замовчуванням відсортовано за зростанням, тоді як стовпець дати народження явно відсортовано за спаданням
Чому ми можемо використовувати DESC і ASC?
Припустімо, ми хочемо надрукувати історію платежів для члена відеотеки, щоб допомогти відповідати на запити на стійці реєстрації. Чи не було б логічніше друкувати платежі в спадаючому хронологічному порядку, починаючи з останнього платежу до попереднього?
DESC у SQL – це ключове слово, яке стає в нагоді в таких ситуаціях. Ми можемо написати запит, який сортує список у порядку спадання за датою платежу.
Припустімо, що відділ маркетингу хоче отримати список фільмів за категоріями, за допомогою якого учасники зможуть вирішити, які фільми доступні в бібліотеці під час прокату фільмів. Чи не було б логічніше відсортувати назви категорій фільмів і назву за зростанням, щоб учасники можуть швидко шукати інформацію зі списку?
Ключове слово ASC стане в нагоді в таких ситуаціях; ми можемо отримати список фільмів, відсортований за назвою категорії та назвою фільму в порядку зростання.
Підсумки
- Сортування результатів запиту – це перевпорядкування рядків, отриманих із набору результатів запиту, у порядку зростання або спадання.
- Ключове слово DESC у SQL використовується для сортування набору результатів запиту в порядку спадання.
- Ключове слово ASC використовується для сортування набору результатів запиту в порядку зростання.
- І DESC, і ASC працюють у поєднанні з ключовим словом ORDER BY. Їх також можна використовувати в комбінації з іншими ключовими словами, наприклад ДЕ ЗАКЛАД і ОБМЕЖЕННЯ
- За замовчуванням для ORDER BY, якщо нічого не вказано явно, є ASC.