Задать вопрос
@drunken_ikarus

Можно ли в mysql сортировать строки по условию?

Извиняюсь за сумбурный сабж. Подскажите пожалуйста, возможно ли решить задачу средствами mysql.
Допустим есть таблица products, с полями: "id", "name", "description".
Задача в том чтобы одним запросом найти продукты в которых некая подстрока имеет вхождение в name или в description, НО в выдаче в начале должны идти продукты с вхождением в name, а в конце в description
  • Вопрос задан
  • 308 просмотров
Подписаться 2 Простой 4 комментария
Решения вопроса 1
@JuniorNoobie
Сижу в поддержке, пишу мелкие проекты
SELECT id, name, description
FROM products
ORDER BY CASE WHEN name LIKE '%string%' THEN 2 WHEN description LIKE '%string%' THEN 1 ELSE 0 END DESC, name
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
tsklab
@tsklab
Здесь отвечаю на вопросы.
SELECT 1, * FROM products WHERE name LIKE '%что-то%'
UNION 
SELECT 2, * FROM products WHERE description LIKE '%что-то%'
                            AND NOT name LIKE '%что-то%'
ORDER BY 1
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы