如何在MySQL表中搜索单词?匹配或喜欢



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

  • 注意:记录可能有不同的国家/地区名称,以逗号分隔。

MATCH AGAINST子句用于全文搜索。

为此,您需要在搜索列上创建一个full text index countries .

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

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

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

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

相关内容

  • 没有找到相关文章

最新更新