PHPとMySQLで質問です。"TEST"とDB内を検索す

Writer: admin Type: foresth Date: 2019-01-08 00:00
PHPとMySQLで質問です。"TEST"とDB内を検索する際に、TASTやTEVTというようにタイプミスした類似のものも検索する方法はありませんでしょうか?共感した0###列 like '_EST' or 列 like 'T_ST' or 列 like 'TE_T' or like LIKE 'TES_'でどうでしょうか。ナイス0
###みなさん、ありがとうございます!シンプルで、一番しっくりきた回答でした。###ある程度ならlike と %regexprlike で対応できます。ただ、TEST と SESAのようなタイプミスを検索するのは難しいです。ナイス0
###類似語の辞書テーブルでも作ったらどうですか?もっと仕様として何がヒットして、何がヒットしないのか定義づける必要があると思います。例えば文字数が一致して、全体を構成しているキャラクターのうち75%以上一致していて、100%一致している単語が存在しないとか。こういった仕様の場合は、SQLで部分一致とORで作ると、インデックスが効かないのでおそらく遅いでしょうから、一旦文字数などの仕様の一部で検索して、あとはプログラム側でフィルタをかける方が良いと思います。ナイス0

 

TAG