ProfiPHPProfiPHP
Категория: Полезное в PHP

Сортировка на 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 удовлетворяющих условиям поиска записей.

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

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