This article has been localized into Russian by the community.
MySQL и раздел ORDER BY
В предыдущем параграфе мы использовали раздел WHERE запроса SQL, чтобы определить, какие строки мы хотели выбрать (SELECT). В этом параграфе мы рассмотрим сортировку результата, чтобы получить данные в определенном порядке. В MySQL, как и в большинстве диалектов SQL, ключевое слово для сортировки данных - это ORDER BY (упорядочить по). Давайте начнем прямо с примера:
SELECT name, country FROM test_users ORDER BY name
За ORDER BY следует столбец, по которому мы хотим отсортировать данные. В этом примере, мы получаем пользователей, отсортированных по их именам по алфавиту. По умолчанию порядок сортировки от малых значений к большим, либо, в случае текстовых строк, по алфавиту (A-Z, А-Я). Это сортировка по возрастанию (ascending order). Другими словами, предыдущий пример можно переписать так:
SELECT name, country FROM test_users ORDER BY name ASC
Но, поскольку это порядок по умолчанию, писать так необязательно. Если вы хотите упорядочить значения в убывающем (descending) порядке - от больших к малым или от Z до A (от Я до А) - используйте ключевое слово DESC:
SELECT name, country FROM test_users ORDER BY name DESC
В некоторых случаях сортировать требуется сразу по нескольким столбцам. Например, сначала по стране, а потом по имени. Синтаксис в целом аналогичен, просто нужно записать имена столбцов через запятую, как здесь:
SELECT name, country FROM test_users ORDER BY country, name
В этом случае пользователи сначала будут отсортированы по названию страны, а потом люди из одной страны будут упорядочены по своим именам. Вы можете даже использовать разные направления сортировки для каждого столбца следующим образом:
SELECT name, country FROM test_users ORDER BY country ASC, name DESC
Чтобы протестировать все предыдущие примеры, вы можете использовать тестовый код, который мы написали в предыдущем параграфе. Просто поместите один из запросов внутрь функции mysql_query() и запустите код:
mysql_connect("localhost", "username", "password");
mysql_select_db("my_database");
$query = mysql_query("Insert your SQL query here");
while($row = mysql_fetch_array($query))
echo $row["name"] . " is from " . $row["country"] . "<br />";