mysql连接其他表搜索
所以基本上我有一个表:usersSearchCache,它有一个objectId,objectId 链接到公司表的id,我需要在用户缓存中搜索公司的关键字匹配的位置mysql连接其他表搜索,mysql,sql,join,left-join,Mysql,Sql,Join,Left Join,所以基本上我有一个表:usersSearchCache,它有一个objectId,objectId 链接到公司表的id,我需要在用户缓存中搜索公司的关键字匹配的位置 上面的查询不起作用,但我不明白为什么。我们在用户表中找到了用户,所有这些用户都可以访问对象的页面,当他们访问这些页面时,会在表userSearchCache中创建一条新记录 SELECT * FROM companies as C LEFT JOIN usersSearchCache as UC ON C.id = UC.objec
上面的查询不起作用,但我不明白为什么。我们在用户表中找到了用户,所有这些用户都可以访问对象的页面,当他们访问这些页面时,会在表userSearchCache中创建一条新记录
SELECT * FROM
companies as C
LEFT JOIN usersSearchCache as UC ON C.id = UC.objectId
WHERE UC.userId = ? AND C.keywords LIKE ?
返回类似于
select * FROM userSearchCache UC
where UC.userId = ?
现在我得到的是一个搜索字段,用户在其中插入他们想要搜索的对象的名称,因此当前查询是:
userId,objectId
1,123
1,345
要查找“biking”,我将使用“%biking%”之类的
JOIN companies C ON UC.object_id=C.id
userId,objectId,keywords
1,123,"yoga,savate,pilates"
1,345,"tennis,biking,soccer"
您的关键字参数是否已包含通配符“%”能否发布错误以及执行此命令所用的一些代码?以及您提供的参数。。你的预期结果呢?你是得到了一个错误,还是没有结果?你能添加一个完整的查询并替换吗?我没有得到任何错误或结果,但我确信参数是正确的。如果你能发布一些代码让我们看看,这会有所帮助。。除了询问您是否尝试在mysql中使用其参数手动运行该命令,以及这些表是否有任何数据可以满足查询的要求之外,我不知道还有什么其他方法可以帮助您?如果您在WHERE子句中引用UC别名(就像您一样),那么您的左连接实际上充当常规连接。
select *
FROM userSearchCache UC
JOIN companies C ON UC.object_id=C.id
where UC.userId = ? AND c.keywords LIKE '%'+?+'%'