Mysql查询标记搜索与相关性
我需要帮助在多列中创建全文搜索。
最后,查询应返回'biz_name',首先与'business'表匹配,然后与'tags'表匹配,然后从'Business_tags'表中选择biz_id,然后将所有结果放在一起,并优先考虑来自'Business Table'的结果。
在简单的解释中 ,当有人搜索银行时 ,他们应该能够获得具有“银行”的商家名称以及标记有“银行”的商家。
请考虑三个表格:
商业表和标签表
|biz_id |biz_name | |tag_id |tag_name|
|----------------------| |----------------|
|001 |Mac burger | |101 |cafe |
|002 |Citi bank | |102 |burger |
|003 |Lou’s Cafe | |103 |drink |
|004 |Baltic pub | |104 |bank |
|005 |T2 Restaurant | |105 |loan |
Business_tags表
|biz_id |tag_id |
|---------------|
|001 |102 |
|002 |105 |
|002 |104 |
|003 |101 |
|003 |103 |
|004 |103 |
|005 |102 |
|005 |101 |
我不能使用联合因为我有不同数量的列。 谢谢您的帮助。
您可以将三个表连接在一起,并对名称进行文本搜索。
SELECT business.biz_name
FROM business,business_tags,tags
WHERE business.biz_id = business_tags.biz_id
AND business_tags.tag_id = tags.tag_id
AND (business.biz_name LIKE '%bank%' OR tags.tag_name = 'bank')
这会做你想要的吗?
链接地址: http://www.djcxy.com/p/75283.html上一篇: Mysql query tag search with relevance
下一篇: Comparing Relevance Scores From mySQL full text searches from different tables