Сортировка данных в MySQL

Для сортировки данных используется выражение ORDER BY `field_name` [ASC | DESC] [, `field_name2` [ASC | DESC]]

Существует 2 направления сортировки данных в SQL-запросе. ASC – по возрастанию и DESC – по убыванию. По-умолчанию данные сортируются по возрастанию.

Пример:
[mysql]mysql> SELECT `id` FROM `table` ORDER BY `id`;
mysql> SELECT `id` FROM `table` ORDER BY `id` ASC;[/mysql]

+----+
| id |
+----+
| 1  |
| 2  |
| 3  |
| 4  |
| 5  |
+----+

mysql> SELECT `id` FROM `table` ORDER BY `id` DESC;

+----+
| id |
+----+
| 5  |
| 4  |
| 3  |
| 2  |
| 1  |
+----+

Сортировку можно производить по нескольким полям таблицы. Причем, если указано ключевое слово DESC, упорядочивание по убыванию будет произведено по полю, которое ближе всего расположено к ключевому слову DESC.
Пример:
[mysql]mysql> SELECT `id`, `lastname`, `name` FROM `table`;[/mysql]

+----+----------+-----------+
| id | lastname | name      |
+----+----------+-----------+
| 1  | Иванов   | Сергей    |
| 2  | Алексеев | Владимир  |
| 3  | Петров   | Вячеслав  |
| 4  | Ампилов  | Александр |
| 5  | Сидоров  | Тимофей   |
| 6  | Сидоров  | Михаил    |
+----+----------+-----------+

[mysql]mysql> SELECT `id`, `lastname`, `name` FROM `table` ORDER BY `lastname`, `name`;[/mysql]

+----+-----------+-----------+
| id | lastname  | name      |
+----+-----------+-----------+
| 2  | Алексеев  | Владимир  |
| 4  | Ампилов   | Александр |
| 1  | Иванов    | Сергей    |
| 3  | Петров    | Вячеслав  |
| 6  | Сидоров   | Михаил    |
| 5  | Сидоров   | Тимофей   |
+----+-----------+-----------+

[mysql]mysql> SELECT `id`, `lastname`, `name` FROM `table` ORDER BY `lastname`, `name` DESC;[/mysql]

+----+-----------+-----------+
| id | lastname  | name      |
+----+-----------+-----------+
| 2  | Алексеев  | Владимир  |
| 4  | Ампилов   | Александр |
| 1  | Иванов    | Сергей    |
| 3  | Петров    | Вячеслав  |
| 5  | Сидоров   | Тимофей   |
| 6  | Сидоров   | Михаил    |
+----+-----------+-----------+