文字列検索 -> LIKE, REGEXP

Posted by muchag | MySQL | 2008-05-24 (土) 21:34:55

個人名を検索するSQL文を利用してみて、困ったことが起きた。

「山本 太郎」 に対して

  1. SELECT * name LIKE "%太郎%"

ならヒットするのだが
「トーマス・エジソン」 に対して

  1. SELECT * name LIKE "%エジソン%"

だとヒットしない…

で、ググググzzz

REGEXP なんていう比較演算子があった。

  1. SELECT * name REGEXP "エジソン"

とし、試してみると、うまくヒットした。

しかーし!
問題点もあるようで

※但し、REGEXPはレスポンスが遅い
 (例)レコードが100万件あった場合の検索処理時間
   LIKE→6秒
   REGEXP→30秒

引用元:不良社員のアフターファイブ MySQLでLIKE検索

この差はでかすぎる…

いつか他の方法を探さないといけないなぁ。

MySQL | 2008-05-24 (土) 21:34:55 |

コメントはまだありません »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a comment