АКЦИЯ: бесплатные месячные курсы по созданию сайтов
на выбор: верстка, JavaScript, PHP или фреймворки. Сегодня последний день для записи! Жми!
⊗pyPmDBNSr 115 of 129 menu
Бесплатная Тренировка Верстки. Приглашаются желающие поверстать!

Сортировка записей через SQL запрос в Python

Чтобы отсортировать строки результата, нужно воспользоваться командой ORDER BY.

Пример

Выберем из нашей таблицы users всех юзеров и отсортируем их по возрасту от меньшего к большему:

query = "SELECT * FROM users ORDER BY age" <-show-

Результат выполненного кода:

<~show~> {'id': 1, 'name': 'user1', 'age': 23, 'salary': 400} {'id': 3, 'name': 'user3', 'age': 23, 'salary': 500} {'id': 2, 'name': 'user2', 'age': 25, 'salary': 500} {'id': 5, 'name': 'user5', 'age': 27, 'salary': 500} {'id': 6, 'name': 'user6', 'age': 28, 'salary': 900} {'id': 4, 'name': 'user4', 'age': 30, 'salary': 900}

Пример

Поменяем порядок сортировки с помощью команды DESC:

query = "SELECT * FROM users ORDER BY age DESC"

Результат выполненного кода:

{'id': 4, 'name': 'user4', 'age': 30, 'salary': 900} {'id': 6, 'name': 'user6', 'age': 28, 'salary': 900} {'id': 5, 'name': 'user5', 'age': 27, 'salary': 500} {'id': 2, 'name': 'user2', 'age': 25, 'salary': 500} {'id': 1, 'name': 'user1', 'age': 23, 'salary': 400} {'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}

Пример

Выберем всех юзеров с зарплатой 500 и отсортируем их по возрасту от меньшего к большему:

query = "SELECT * FROM users WHERE salary=500 ORDER BY age"

Результат выполненного кода:

{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500} {'id': 2, 'name': 'user2', 'age': 25, 'salary': 500} {'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}

Пример

Можно сортировать не по одному полю, а по нескольким. Давайте для примера выберем всех юзеров и отсортируем их сначала по возрастанию возраста, а юзеров с одинаковыми возрастами отсортируем по возрастанию зарплаты:

query = "SELECT * FROM users ORDER BY age, salary"

Результат выполненного кода:

{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400} {'id': 3, 'name': 'user3', 'age': 23, 'salary': 500} {'id': 2, 'name': 'user2', 'age': 25, 'salary': 500} {'id': 5, 'name': 'user5', 'age': 27, 'salary': 500} {'id': 6, 'name': 'user6', 'age': 28, 'salary': 900} {'id': 4, 'name': 'user4', 'age': 30, 'salary': 900}

Пример

Команду ORDER BY можно комбинировать с LIMIT . При этом сначала нужно писать команду сортировки, а потом - лимит. В следующем примере сначала отсортируем записи по возрастанию возраста, а потом возьмем первые 3 штуки:

query = "SELECT * FROM users ORDER BY age LIMIT 3"

Результат выполненного кода:

{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400} {'id': 3, 'name': 'user3', 'age': 23, 'salary': 500} {'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}

Практические задачи

Достаньте всех юзеров и отсортируйте их по возрастанию зарплаты.

Достаньте всех юзеров и отсортируйте их по убыванию зарплаты.

Достаньте всех юзеров и отсортируйте их по имени.

Достаньте юзеров с зарплатой 500 и отсортируйте их по возрасту.

Достаньте всех юзеров и отсортируйте их по имени и по зарплате.

Отсортируйте юзеров по возрастанию зарплаты и получите первых 3 работника из результата сортировки.

Отсортируйте юзеров по убыванию зарплаты и получите первых 3 юзера из результата сортировки.

enru