具有相关性的Mysql查询标记搜索
我需要关于在多个列中创建全文搜索的帮助 最后,查询应返回“biz_name”,首先匹配“business”表,然后 根据“标签”表进行匹配,然后从“业务标签”表中选择业务id,然后将“业务表”中的所有结果与优先排序放在一起 在简单的解释中,当有人搜索银行时,他们应该能够获得包含“bank”的企业名称和标记为“bank”的企业名称具有相关性的Mysql查询标记搜索,mysql,sql,search,tags,full-text-search,Mysql,Sql,Search,Tags,Full Text Search,我需要关于在多个列中创建全文搜索的帮助 最后,查询应返回“biz_name”,首先匹配“business”表,然后 根据“标签”表进行匹配,然后从“业务标签”表中选择业务id,然后将“业务表”中的所有结果与优先排序放在一起 在简单的解释中,当有人搜索银行时,他们应该能够获得包含“bank”的企业名称和标记为“bank”的企业名称 请考虑三表: 业务表和标签表 |biz_id |biz_name | |tag_id |tag_name| |--------------
请考虑<强>三<强>表:
业务表和标签表|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 |
|biz_id |tag_id |
|---------------|
|001 |102 |
|002 |105 |
|002 |104 |
|003 |101 |
|003 |103 |
|004 |103 |
|005 |102 |
|005 |101 |
业务标签表
|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 |
|biz_id |tag_id |
|---------------|
|001 |102 |
|002 |105 |
|002 |104 |
|003 |101 |
|003 |103 |
|004 |103 |
|005 |102 |
|005 |101 |
我不能使用union,因为我的列数不同。
谢谢您的帮助。您可以将三个表合并在一起,还可以对名称进行文本搜索
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')
这能满足您的需求吗?优先级如何?