У нас есть пользователи в пользовательской таблице, все эти пользователи могут посещать страницы объектов, когда они посещают эти страницы, в таблице userSearchCache создаются новые записи.
select * FROM userSearchCache UC
where UC.userId = ?
возвращает что-то вроде
userId,objectId
1,123
1,345
Теперь я получил поле поиска, в которое пользователи вставляют имя объекта, который они хотят найти, поэтому текущий запрос:
JOIN companies C ON UC.object_id=C.id
userId,objectId,keywords
1,123,"yoga,savate,pilates"
1,345,"tennis,biking,soccer"
чтобы найти "велосипед", я бы использовал LIKE '% BIKING%'
select *
FROM userSearchCache UC
JOIN companies C ON UC.object_id=C.id
where UC.userId = ? AND c.keywords LIKE '%'+?+'%'
Содержит ли ваш параметр ключевого слова символы подстановки "%"