Как на SQL (mysql) сделать запрос с подсчетом совпадений по LIKE %%?
Имеется длинное название детали в промышленности из 10 слов
Полное совпадение с другими деталями возможно в очень редких случаях
Хотелось бы сделать выборку, разбив фразу на 1,2,3...10 слов и подсчитать совпадения, отсортировав по "релевантности" - чем больше слов совпало, тем выше результат.
Разобью explode, потом напишу запрос LIKE OR LIKE OR....
А как потом подсчитать число совпадений по каждому LIKE?
Это годится для "повышения релевантности" отдельного условия, но не для подсчёта подошедших условий. Мой вариант: вложенным запросом UNION из 10 (или сколько там слов) запросов к этой таблице, группировка по первичному ключу и COUNT() во внешнем.
UPD: натупил, тут и вложенный запрос не нужен. Просто SELECT id, COUNT(*) FROM ... GROUP BY id
Понял, отлично, отмечаю решением.
Юнионы делал, но в моем случае проблема именно релевантности - поиск схожих запчастей и чем больше слов совпало тем выше в выдаче, но даже если совпало одно - нужно показать, если других нет