ProfiPHPProfiPHP
  1. Главная
  2. Полезное в PHP
  3. Сортировка на SQL

Сортировка на SQL

Почти все запросы из базы данных SQL подлежат определенной сортировки. Для этого существует специальный оператор ORDER BY, который обрабатывает как числовые значения, так и строковые в алфавитном порядке. Оператор ORDER BY имеет следующий синтаксис:
ORDER BY column_name [ASC | DESC]
По умолчанию используется параметр ASC, который устанавливает порядок сортирования во возрастанию, от меньших значений к большим. Параметр DECS устанавливает порядок сортирования по убыванию, от больших значений к меньшим.

В большинстве случаев сортировка происходит по ID или дате создания записи, реже по алфавиту и другим ячейкам.

Пример использования оператора ORDER BY:
SELECT * FROM `table` ORDER BY `id`
Очень часто необходимо выполнить двойную сортировку в SQL-запросе. Приведем пример:
SELECT * FROM `table` ORDER BY `field1`, `field2`
После выполнения этого запроса все записи будут отсортированы по полю Field1, а затем внутри этого Field1 отсортированы по Field2.

Может понадобится осуществить еще один вид сортировки, когда необходимо отсортировать не сразу по нескольким полям, а сначала по одному, затем по-другому. Например, необходимо вывести все записи по уникальному ID и отсортировать их по дате. Но операцию осуществить не сразу по уникальном идентификаторе и дате, а именно сначала по ID, а потом уже по дате. Для этого следует воспользоваться следующим выражением:
SELECT * FROM ( SELECT * FROM `table` ORDER BY `id` DESC LIMIT 10 ) a ORDER BY `date`
После первого FROM указывается множество данных, полученных лимитированной выборкой из другой таблицы, а потом в полученном множестве идет уже сортировка по другому параметру. Результатом данного примера будет вывод 10 удовлетворяющих условиям поиска записей.

Добавить комментарий

Имя:
Текст комментария: