Ознайомлення з оператором 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 для сортування рядків в наборі результатів по одному або кількох стовпцях в порядку зростання або зменшення.

 



Напишіть тут свою думку/питання

Ваша пошта не публікуватиметься. Обов’язкові поля позначені *