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

Как правильно составить SQL запрос с использованием order by case?

Здравствуйте. Требуется чтобы результат вывода сортировался по максимальному вхождению слов в заголовок товара. Пробую такой вариант:

SELECT * FROM products 
order by case 
    when title LIKE "%Спиннинг%" AND title LIKE "%Карбоновый%" AND title LIKE "%Белый%" AND active = 1 then 1 
    when title LIKE "%Спиннинг%" AND title LIKE "%Карбоновый%" AND active = 1 then 2 
    when title LIKE "%Спиннинг%" AND active = 1 then 3
    else 4
end


И работает вроде бы отлично, сначала выводятся спиннинги карбоновые белые, потом просто спиннинги карбоновые и затем все товары, где есть в заголовке "спиннинг".

Но после выводятся и все остальные товары, где даже и "Спиннинг" нет в заголовке. Как в текущей конструкции запроса отсечь не искомые товары?
  • Вопрос задан
  • 58 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
@Akela_wolf
Extreme Programmer
Добавить условие WHERE title LIKE '%Спиннинг%'
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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