Ознакомление с оператором ORDER BY в MySQL

Ознакомление с оператором ORDER BY в MySQL



В сегодняшнем уроке мы рассмотрим на практике то, как сортировать результаты выборки из базы данных с помощью оператора ORDER BY в MySQL.

 

 

Основы оператора ORDER BY в MySQL

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

Чтобы отсортировать набор результатов, вам нужно добавлять условие ORDER BY в инструкцию SELECT. Ниже показан синтаксис условия ORDER BY:

SELECT
 select_query
FROM
 table_name
ORDER BY
 column_name_1 [ASC|DESC],
 column_name_2 [ASC|DESC],
 ...;

 

 

В этом синтаксисе вы указываете один или несколько столбцов, которые вы хотите отсортировать после условия ORDER BY.

ASC означает сортировка набора результатов по возрастанию, а DESC – сортировка набора результатов по убыванию.

 

Это условие ORDER BY сортирует результирующий набор в порядке возрастания:

ORDER BY column_name_1 ASC;

 

А это условие ORDER BY сортирует набор результатов в порядке убывания:

ORDER BY column_name_1 DESC;

 

По умолчанию в условии ORDER BY используется ASC, если вы явно не указали какую-либо опцию.

Следовательно, следующие примеры эквивалентны:

ORDER BY column_name_1 ASC;
и
ORDER BY column_name_1;

 

 

Если вы хотите отсортировать результирующий набор по нескольким столбцам, укажите разделенный запятыми список столбцов в условии ORDER BY:

ORDER BY
 column_name_1,
 column_name_2;

 

 

Можно отсортировать результат по одному столбцу в порядке возрастания, а по другому столбцу в порядке убывания:

ORDER BY
 column_name_1 ASC,
 column_name_2 DESC;

 



 

В этом случае условие ORDER BY:

  • Сначала отсортирует набор результатов по значениям в column_name_1 в порядке возрастания.
  • Затем отсортирует отсортированный результат по значениям в column_name_2 в порядке убывания. Обратите внимание, что на этом шаге порядок значений в column_name_1 не изменится, меняется только порядок значений в column_name_2.

 

Обратите внимание, что условие ORDER BY всегда выполняется после условий FROM і SELECT.

 

 

Примеры выражений оператора ORDER BY в MySQL

 

Пример №1: Использование условия ORDER BY для сортировки в одном столбце

В следующем запросе используется условие ORDER BY для сортировки автомобилей по значениям в столбце carYear в порядке возрастания.

SELECT
 carYear,
 carBrand
FROM
 cars
ORDER BY
 carYear;

 

 

Если вы хотите отсортировать автомобили по году выпуска в порядке убывания, используйте DESC после столбца carYear в предложении ORDER BY, как показано в следующем запросе:

SELECT
 carYear,
 carBrand
FROM
 cars
ORDER BY
 carYear DESC;

 

 

 

Пример №2: Использование условия ORDER BY для сортировки значений в нескольких столбцах

Если вы хотите отсортировать автомобили по году выпуска в порядке убывания, а затем по бренду (марке) в порядке возрастания, в соответствующем столбце укажите DESC и ASC следующим образом:

SELECT
 carYear,
 carBrand
FROM
 cars
ORDER BY
 carYear DESC,
 carBrand ASC;

 

 

В этом примере условие ORDER BY сортирует результирующий набор по году выпуска автомобиля в порядке убывания, а затем сортирует результирующий набор по марке автомобиля в порядке возрастания, чтобы получить окончательный набор результатов.

 

 

Пример №3: Условие ORDER BY для сортировки с использованием выражения

Следующий запрос выбирает данные заказа из таблицы orderDetails. Он рассчитывает промежуточный итог для каждой отдельной позиции и сортирует результирующий набор на основе промежуточного итога.

SELECT
 orderNumber,
 orderQuantity * eachPrice
FROM
 orderDetails
ORDER BY
 orderQuantity * eachPrice DESC;

 

 

 

Из сегодняшнего урока вы узнали, как использовать условие ORDER BY в MySQL для сортировки строк в наборе результатов по одному или нескольким столбцам в порядке возрастания или убывания.

 



Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *