Вы уже, наверное, заметили, что результаты, выдававшиеся запросами из
предыдущих примеров, выводились без какой-либо сортировки. Но ведь часто
разобраться в результатах легче, если они отсортированы. Для этого
используется выражение ORDER BY
.
Так выглядят даты рождения животных в отсортированном виде:
mysql> SELECT name, birth FROM pet ORDER BY birth; +----------+------------+ | name | birth | +----------+------------+ | Buffy | 1989-05-13 | | Bowser | 1989-08-31 | | Fang | 1990-08-27 | | Fluffy | 1993-02-04 | | Claws | 1994-03-17 | | Slim | 1996-04-29 | | Whistler | 1997-12-09 | | Chirpy | 1998-09-11 | | Puffball | 1999-03-30 | +----------+------------+
Над столбцами с символьными значениями операция сортировки - как и все
другие операции сравнения - обычно проводится без учета регистра символов.
Это значит, что порядок расположения столбцов, совпадающих во всем, кроме
регистра символов, относительно друг друга будет не определен. Провести
сортировку с учетом регистра символов можно при помощи команды BINARY
:
ORDER BY BINARY(поле)
.
Для сортировки в обратном порядке к имени столбца следует добавить
ключевое слово DESC
(по убыванию):
mysql> SELECT name, birth FROM pet ORDER BY birth DESC; +----------+------------+ | name | birth | +----------+------------+ | Puffball | 1999-03-30 | | Chirpy | 1998-09-11 | | Whistler | 1997-12-09 | | Slim | 1996-04-29 | | Claws | 1994-03-17 | | Fluffy | 1993-02-04 | | Fang | 1990-08-27 | | Bowser | 1989-08-31 | | Buffy | 1989-05-13 | +----------+------------+
Сортировку можно проводить по нескольким столбцам сразу. Например для того, чтобы отсортировать таблицу сначала по типу животного, потом - по дате рождения и затем - расположить наиболее молодых животных определенного типа в начале списка, выполните следующий запрос:
mysql> SELECT name, species, birth FROM pet ORDER BY species, birth DESC; +----------+---------+------------+ | name | species | birth | +----------+---------+------------+ | Chirpy | bird | 1998-09-11 | | Whistler | bird | 1997-12-09 | | Claws | cat | 1994-03-17 | | Fluffy | cat | 1993-02-04 | | Fang | dog | 1990-08-27 | | Bowser | dog | 1989-08-31 | | Buffy | dog | 1989-05-13 | | Puffball | hamster | 1999-03-30 | | Slim | snake | 1996-04-29 | +----------+---------+------------+
Обратите внимание: действие ключевого слова DESC
распространяется только
на тот столбец, имя которого располагается в запросе прямо перед этим
словом (в данном случае - birth
); значения поля species по-прежнему
отсортированы в возрастающем порядке.