MySQL / 6. Сортировка результатов запроса

Сортировка частей таблицы

Задача
Вы хотите упорядочить не всю таблицу, а только ее часть.

Решение
Добавьте инструкцию WHERE, которая будет отбирать только интересующие вас записи.

Обсуждение
Инструкция ORDER BY не учитывает количество строк, она сортирует все, что возвращает запрос. Если вы не хотите упорядочивать всю таблицу, добавьте  запрос инструкцию WHERE, указывающую строки для сортировки. Например, чтобы упорядочить строки только для одного водителя, сделайте, например, так:

mysql> SELECT trav_date, miles FROM driver_log WHERE name = 'Henry'

-> ORDER BY trav_date;

+--------------+-------+
| trav_date    | miles |
+--------------+-------+
| 2001-11-26 | 115   |
| 2001-11-27 | 96     |
| 2001-11-29 | 300   |
| 2001-11-30 | 203   |
| 2001-12-01 | 197   |
+--------------+-------+

Как видно из запроса, столбцы, указанные в инструкции ORDER BY, не обязаны совпадать со столбцами инструкции WHERE.

Статьи по MySQL на эту тему:

Размещение некоторых значений в начале или конце упорядоченного списка
Сортировка IP-адресов в числовом порядке
Сортировка в порядке, определенном пользователем
Сортировка значений ENUM
Сортировка и значения NULL