ASC и DESC
Зачем это нужно
Одних и тех же данных бывают два вида отчётов: «топ самых дорогих»
и «самые дешёвые». DESC и ASC управляют направлением сортировки.
Аналогия с Excel
В Excel кнопки «А→Я» и «Я→А» на панели инструментов. В SQL — ASC и DESC
после имени колонки в ORDER BY.
Синтаксис
ORDER BY колонка ASC -- по возрастанию (A→Я, 1→9, старые→новые)
ORDER BY колонка DESC -- по убыванию (Я→А, 9→1, новые→старые)
ASC — значение по умолчанию. ORDER BY price и ORDER BY price ASC —
одно и то же. Но писать ASC явно — хорошая практика.
Как сортируются разные типы данных
Числа: ASC — от меньшего к большему (150 → 89990).
Текст: ASC — по алфавиту (А → Я, a → z).
Даты: ASC — от более ранней к более поздней (2024-01-01 → 2024-03-12).
-- Дорогие товары первыми
SELECT name, price FROM products ORDER BY price DESC;
-- Алфавитный каталог
SELECT name FROM products ORDER BY name ASC;
-- Новинки сначала
SELECT name, created_at FROM products ORDER BY created_at DESC;
Частые ошибки
DESC пишут перед колонкой — ORDER BY DESC price — ошибка синтаксиса.
Направление указывается после имени колонки: ORDER BY price DESC.
Забывают DESC для «топ-N» — ORDER BY price LIMIT 5 без DESC вернёт
5 самых дешёвых, а не дорогих. Для топа нужен DESC.
Запомни
ASC — от меньшего к большему (по умолчанию). DESC — от большего к меньшему.
Направление пишется после имени колонки.
Мини-практика
Напиши два запроса:
- Выведи
name,price— самые дорогие товары первыми. - Выведи
name,created_at— самые свежие поступления первыми.
Ответы
-- 1. Дорогие первыми
SELECT name, price
FROM products
ORDER BY price DESC;
-- 2. Свежие первыми
SELECT name, created_at
FROM products
ORDER BY created_at DESC;
Прочитайте урок до конца — прогресс засчитается автоматически