3

我有一些公司的表格,这些公司可能在不同的国家有很多分支机构。这些国家被插入到countries字段中。
现在,我必须创建一个搜索系统,允许用户查找在特定国家/地区设有分支机构的公司。
我的问题是:我必须使用哪一个?MATCH AGAINST还是LIKE?查询必须搜索所有记录以找到完全匹配的项目。

  • 注意:记录可能有不同的国家名称,用逗号分隔。
4

3 回答 3

5

MATCH AGAINST子句用于全文搜索

为此,您需要创建一个full text index搜索栏countries

full text index搜索比LIKE '%country%'serach 快得多。

于 2012-08-16T04:07:23.893 回答
3

我会改变实现:拥有一个包含多个值的字段是一个坏主意,例如,它很难维护 - 你将如何remove从公司实现一个国家?

我相信更好的方法是有一个单独的表Companies_countries将有两列:company_idand country_id,并且每个可以有多行company

于 2012-08-16T04:10:32.550 回答
0

你应该使用LIKE. 因为@Omesh 提到MATCH AGAINST的子句用于全文搜索。. 全文搜索需要整个列进行搜索。

于 2012-08-16T04:39:48.003 回答