В сегодняшнем уроке мы рассмотрим на практике то, как сортировать результаты выборки из базы данных с помощью оператора 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 для сортировки строк в наборе результатов по одному или нескольким столбцам в порядке возрастания или убывания.
Выбор мастера для ремонта и перетяжки мебели — задача, которая требует вдумчивого подхода. Ведь от…
Выбор идеального хостинга под свой сайт может быть довольно запутанным делом, особенно когда существует так…
Чтобы избегать ошибок, нужно набираться опыта; чтобы набираться опыта, надо делать ошибки Лоуренс Питер
Краткое определение Черного SEO Черное СЕО (или Черная оптимизация) — это любая практика, целью которой…
Получение водительских прав категории C открывает двери к профессиональной деятельности, связанной с управлением грузовыми автомобилями.…