• ベストアンサー

LIKEは類似一致検索なのでしょうか?

LIKEは類似一致検索なのでしょうか? "%Allegro%"で検索すると、「関係ない文字~アレグロ~関係ない文字」がヒットします。 といっても、MySQLがシソーラス辞典を持っているなんて思えませんし… 理由をご存じの方、ご教授ください。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

>「allegro」という文字列を「アレグロ」と勝手に変換して検索してくれているのではないか? それはありません。 ワイルドカードで日本語検索をする場合、キャラクターセットが まちがっていると誤爆することはあります。 mysqlのバージョンや設定によって状況は異なります。 なお、前方後方一致はSQLとしての効率は悪いので推奨されていません。

その他の回答 (1)

  • zionic
  • ベストアンサー率39% (31/79)
回答No.1

%がワイルドカードだからです。 "%Allegro%"の場合、対象のデータのどこかに"Allegro"が含まれていればヒットします。 なので「AAllegro」も「BAllegroC」も「AllegroD」も検索対象となります。 ちなみに、"Allegro%"であれば前方一致、"%Allegro"であれば後方一致の意味になります。

henguri22
質問者

補足

すみません。題意の説明に語弊があったようです。 「関係ない文字~アレグロ~関係ない文字」 という例は、実例にすると、 データが id name 1 この曲はアレグロの速さです。 とあるとき、 name LIKE "%allegro%" と検索して、上記のid:1のレコードがヒットするのです。 つまり、MySQL内で、「allegro」という文字列を「アレグロ」と勝手に変換して検索してくれているのではないか?というのが題意です。 すみません。説明不足で

関連するQ&A