АКЦИЯ: бесплатные месячные курсы по созданию сайтов
на выбор: верстка, JavaScript, PHP или фреймворки. Сегодня последний день для записи! Жми!
⊗ndSqDBNSr 21 of 41 menu
НОВИНКА: Практика на Реальных Проектах и Работы в Портфолио. Бесплатный курс! Жми для записи!

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

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

Пример

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

let query = "SELECT * FROM users ORDER BY age";

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

[ { 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:

let 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 и отсортируем их по возрасту от меньшего к большему:

let 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 } ]

Пример

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

let 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 штуки:

let 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 юзера из результата сортировки.