具有相关性的Mysql查询标记搜索

具有相关性的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_name”,首先匹配“business”表,然后 根据“标签”表进行匹配,然后从“业务标签”表中选择业务id,然后将“业务表”中的所有结果与优先排序放在一起

在简单的解释中,当有人搜索银行时,他们应该能够获得包含“bank”的企业名称和标记为“bank”的企业名称

请考虑<强>三<强>表:

业务表标签表

|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')

这能满足您的需求吗?

优先级如何?