В сегодняшнем уроке мы рассмотрим на практике то, как сортировать результаты выборки из базы данных с помощью оператора 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 для сортировки строк в наборе результатов по одному или нескольким столбцам в порядке возрастания или убывания.
Когда я начинал свой путь в веб-разработке, вопрос "какой веб-сервер использовать?" практически не стоял. Ответ…
Когда речь заходит о веб-серверах, два имени всегда на слуху: Apache и Nginx. Apache —…
В мире веб-разработки мы постоянно сталкиваемся с проблемой: "А у меня на компьютере все работает!".…
На заре моей карьеры веб-разработчика все было относительно просто: установил локальный сервер (помните Denwer?), положил…
Если вы когда-либо интересовались, как ускорить свой сайт на WordPress, вы, наверное, слышали о "кешировании".…
Когда мы говорим о веб-разработке, первое, что приходит на ум — это HTML и CSS.…