8

MySQLの注文結果を検索語にどれだけ近いかで並べ替える方法はありますか?

都市名のユーザー入力を含むフィールドを並べ替えようとしています。バリエーションやスペルミスがありますが、一番上に「最も近い」一致を表示したいと思います。

私はsoundexがこれに最適なアルゴリズムではないかもしれないことを知っていますが、それ(または別の方法)が合理的に成功する可能性がある場合-データベースによってソートを行う価値があるかもしれません。

4

1 に答える 1

4

異なる単語が同じSoundexの結果をもたらす可能性があり、したがって任意にソートされるため、Soundexはこの種のことには適していません。これに対するより良い解決策は、Levenshein Edit Distanceアルゴリズムであり、データベースの関数として実装できる場合があります。Levensheintimplへのリンク。MySqlストアド関数として!!!

このSOリンクもチェックしてください。アルゴリズムのSQLサーバー(T-SQL固有)の実装が含まれていますが、移植できるはずです。アルゴリズムの仕組みは非常に単純で、2D配列と文字列のループのみが必要です。

于 2010-10-20T17:35:40.583 に答える