предположим, что мы выполняем поиск по ключевым словам: keyword1, keyword2, keyword3
в базе данных есть записи со столбцом «name»:
1: John Doe 2: Samuel Doe 3: John Smith 4: Anna Smith
теперь Query:
SELECT * FROM users WHERE (name LIKE "%John%" OR name LIKE "%Doe%")
он выберет записи: 1,2,3 (в этом порядке)
но я хочу заказать его по ключевому слову
в примере ключевое слово1 = Джон, ключевое слово2 = Доу
так что это должно быть перечислено по ключевым словам: 1,3,2 (потому что я хочу выполнить поиск «Доу» после поиска «Джон»)
Я думал о ВЫБРАТЬ ОТЛИЧИЕ ОТ (..... . СОЮЗ .....)
но будет гораздо проще заказать его как-нибудь по-другому (реальный запрос действительно длинный)
есть ли уловки для создания такого заказа?
order by case
when name LIKE "%John%" then 1
when name LIKE "%Doe%" then 2
else 3
end
Прочитайте о логическом полнотекстовом поиске, с помощью которого вы можете упорядочивать.