ЗАКАЗАТЬ ПО в MySQL: Запрос DESC и ASC с ПРИМЕРОМ

Сортировка результатов

При использовании команды SELECT результаты возвращались в том же порядке, в котором записи были добавлены в базу данных. Это порядок сортировки по умолчанию. В этом разделе мы рассмотрим, как можно сортировать результаты запроса. Сортировка — это просто переупорядочение результатов запроса определенным образом. Сортировка может выполняться по одному столбцу или по нескольким столбцам. Это можно сделать с числами, строками, а также типами данных даты.

Что такое ORDER BY в MySQL?

MySQL СОРТИРОВАТЬ ПО используется вместе с запросом SELECT для упорядоченной сортировки данных. MySQL Предложение ORDER BY используется для сортировки наборов результатов запроса в порядке возрастания или убывания.

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

ВОТ

  • Оператор SELECT... " это обычный запрос выбора
  • "| " представляет альтернативы
  • «[ГДЕ условие | ГРУППИРОВАТЬ ПО `field_name(s)` ИМЕЮЩЕЕ условие» — это необязательное условие, используемое для фильтрации наборов результатов запроса.
  • "СОРТИРОВАТЬ ПО" выполняет сортировку набора результатов запроса
  • «[АСК | DESC]” — это ключевое слово, используемое для сортировки наборов результатов в порядке возрастания или убывания. Примечание ASC используется по умолчанию.
  • Что такое ключевые слова DESC и ASC?

    Ключевые слова DESC и ASCASC — это короткая форма слова «восходящий». Ключевые слова DESC и ASCMySQL DESC – это короткая форма нисходящего
    Он используется для сортировки результатов запроса сверху вниз. Он используется для сортировки результатов запроса снизу вверх.
    При работе с типами данных даты самая ранняя дата отображается вверху списка. . При работе с типами дат самая поздняя дата отображается вверху списка.
    При работе с числовыми типами данных наименьшие значения отображаются вверху списка. При работе с числовыми типами данных самые высокие значения отображаются вверху набора результатов запроса.
    При работе со строковыми типами данных набор результатов запроса сортируется от тех, которые начинаются с буквы 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]

    ВОТ

    • ВЫБЕРИТЕ {имя поля | *} FROM tableName(s) — это оператор, содержащий поля и таблицы, из которых можно получить набор результатов.
    • [ГДЕ условие] не является обязательным, но может использоваться для фильтрации данных в соответствии с заданным условием.
    • СОРТИРОВАТЬ ПО имя(я) поля является обязательным и представляет собой поле, по которому должна выполняться сортировка. MySQL Ключевое слово DESC указывает, что сортировка должна осуществляться в порядке убывания.
    • [ОГРАНИЧЕНИЕ] не является обязательным, но может использоваться для ограничения количества результатов, возвращаемых из набора результатов запроса.

    Примеры:

    Давайте теперь посмотрим на практический пример –

    SELECT * FROM members;

    Выполнение приведенного выше сценария в MySQL Workbench с 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 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 дает нам следующие результаты, показанные ниже.

Пример DESC и ASC

Тот же запрос в порядке возрастания

ВЫБРАТЬ * ИЗ участников СОРТИРОВАТЬ ПО дате_рождения ASC

Пример DESC и ASC

Примечание. Значения NULL означают отсутствие значений (не ноль или пустую строку). Обратите внимание на то, как они были отсортированы.

Больше примеров

Давайте рассмотрим следующую сортировку SQL по сценарию, в котором перечислены все записи-члены.

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 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


Предположим, мы хотим получить список, который сортирует набор результатов запроса с использованием поля пола. Мы будем использовать сценарий, показанный ниже.

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

Сначала отображаются члены женского пола, а затем — члены мужского пола. Это происходит потому, что при использовании предложения 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 и ASC?

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

DESC в SQL — это ключевое слово, которое может оказаться полезным в таких ситуациях. Мы можем написать запрос, который сортирует список по убыванию даты платежа.

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

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

Резюме

  • Сортировка результатов запроса — это переупорядочение строк, возвращаемых из набора результатов запроса, в порядке возрастания или убывания.
  • Ключевое слово DESC в SQL используется для сортировки набора результатов запроса в порядке убывания.
  • Ключевое слово ASC используется для сортировки набора результатов запроса в порядке возрастания.
  • И DESC, и ASC работают вместе с ключевым словом ORDER BY. Их также можно использовать в сочетании с другими ключевыми словами, такими как Предложение WHERE и ПРЕДЕЛ
  • Если ничего не указано явно, по умолчанию для ORDER BY используется ASC.