MySQL присоединиться к другой таблице поиска - PullRequest
0 голосов
/ 26 ноября 2011
SELECT * FROM
companies as C
LEFT JOIN usersSearchCache as UC ON C.id = UC.objectId
WHERE UC.userId = ? AND C.keywords LIKE ?

Таким образом, у меня есть таблица.

Приведенный выше запрос не работает, но я не понимаю, почему.

1 Ответ

0 голосов
/ 26 ноября 2011

У нас есть пользователи в пользовательской таблице, все эти пользователи могут посещать страницы объектов, когда они посещают эти страницы, в таблице 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 '%'+?+'%'

Содержит ли ваш параметр ключевого слова символы подстановки "%"

...