У сьогоднішньому уроці ми розглянемо на практиці те, як сортувати результати вибірки з бази даних за допомогою оператора 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 для сортування рядків в наборі результатів по одному або кількох стовпцях в порядку зростання або зменшення.
Якщо хочеш пізнати людину, не слухай, що про неї говорять інші, послухай, що вона говорить…
Вибачення — не означає, що ти не правий, а інша людина має рацію. Це всього…
Атмосферу паперової книги, запах свіжого чорнила і паперу, що трохи залежався, складно замінити гаджетами. Але…