3

さまざまな国に多くの支店を持つ可能性のあるいくつかの会社のテーブルがあります。これらの国はcountriesフィールドに挿入されます。
ここで、ユーザーが特定の国に支店を持つ会社を見つけることができる検索システムを作成する必要があります。
私の質問は次のとおりです。どちらを使用する必要がありますか? MATCH AGAINSTまたはLIKE?完全に一致するアイテムを見つけるには、クエリですべてのレコードを検索する必要があります。

  • 注意: レコードには、コンマで区切られた異なる国名が含まれる場合があります。
4

3 に答える 3

5

MATCH AGAINST句は全文検索で使用されます。

full text indexこのためには、検索列を作成する必要がありますcountries

full text index検索は検索よりもはるかに高速LIKE '%country%'です。

于 2012-08-16T04:07:23.893 に答える
3

実装を変更します。複数の値を含むフィールドを持つことは悪い考えです。たとえば、維持するのが難しいremoveです。会社から国をどのように実装しますか?.

より良いアプローチは、と の2 つの列を持つ別のテーブルcompany_countriescompany_idを持つことでありcountry_id、 ごとに複数の行を持つことができると思いますcompany

于 2012-08-16T04:10:32.550 に答える
0

を使用する必要がありますLIKE。@Omesh で述べたように、MATCH AGAINST句は全文検索に使用されるためです。. また、全文検索では検索に列全体が必要です。

于 2012-08-16T04:39:48.003 に答える