Підступна війна росії проти України. Орієнтовні втрати ворога
(станом на 28.04.2024)
466150
осіб
348
літаків
325
гелікоптерів
7279
танків
13991
ББМ
11948
артилерія
776
ППО
1050
РСЗВ
16065
машин
26
кораблі і катери
Ознайомлення з оператором ORDER BY в MySQL
Опубліковано Оновлено: 17.10.2019

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

 

 

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

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