В сегодняшнем уроке мы рассмотрим на практике то, как сортировать результаты выборки из базы данных с помощью оператора 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
для сортировки автомобилей по значениям в столбце carYear
в порядке возрастания.
SELECT carYear, carBrand FROM cars ORDER BY carYear;
Если вы хотите отсортировать автомобили по году выпуска в порядке убывания, используйте DESC
после столбца carYear
в предложении ORDER BY
, как показано в следующем запросе:
SELECT carYear, carBrand FROM cars ORDER BY carYear DESC;
Если вы хотите отсортировать автомобили по году выпуска в порядке убывания, а затем по бренду (марке) в порядке возрастания, в соответствующем столбце укажите DESC
и ASC
следующим образом:
SELECT carYear, carBrand FROM cars ORDER BY carYear DESC, carBrand ASC;
В этом примере условие ORDER BY
сортирует результирующий набор по году выпуска автомобиля в порядке убывания, а затем сортирует результирующий набор по марке автомобиля в порядке возрастания, чтобы получить окончательный набор результатов.
Следующий запрос выбирает данные заказа из таблицы orderDetails
. Он рассчитывает промежуточный итог для каждой отдельной позиции и сортирует результирующий набор на основе промежуточного итога.
SELECT orderNumber, orderQuantity * eachPrice FROM orderDetails ORDER BY orderQuantity * eachPrice DESC;
Из сегодняшнего урока вы узнали, как использовать условие ORDER BY
в MySQL для сортировки строк в наборе результатов по одному или нескольким столбцам в порядке возрастания или убывания.
В современном мире цифрового маркетинга Facebook (Meta) остается одной из самых мощных платформ для продвижения…
Этот прибор стал незаменимым элементом арсенала представителей множества профессий, но особенно актуален среди военных. Тепловизор…
Постоянный поток новостей, рабочих задач и личных забот часто приводит к тому, что в голове…
В 2025 году конкуренция в e-commerce стала жесткой как никогда. Клиенты выбирают не только по…
Веб-дизайнеры и разработчики всегда ищут что-то новое и креативное, чтобы сделать свой сайт уникальным и…
Представьте ситуацию, когда вы пытаетесь обновить свой веб-сайт, но по какой-то причине у вас нет…