あなたが探しているのは、レーベンシュタイン距離アルゴリズムと呼ばれるものです。PHPにはレーベンシュタイン関数がありますが、実際には MySQL でこれを行いたいと考えています。
MySQL でレーベンシュタイン関数を実装するには、2 つの方法があります。1 つ目は、入力と出力が異なることを除いて、STORED TRANSACTION とほぼ同じように動作する STORED FUNCTION を作成することです。これは小さなデータセットでは問題ありませんが、数千行に近づくと少し遅くなります。ここで詳細情報を見つけることができます: http://kristiannissen.wordpress.com/2010/07/08/mysql-levenshtein/
2 番目の方法は、C/C++ でユーザー定義関数を実装し、それを共有ライブラリ (*.so ファイル) として MySQL にリンクすることです。このメソッドは、STORED FUNCTION を使用してライブラリを呼び出します。つまり、このメソッドまたは最初のメソッドの実際のクエリは同じである可能性があります (両方の関数への入力が同じである場合)。この方法の詳細については、http ://samjlevy.com/2011/03/mysql-levenshtein-and-damerau-levenshtein-udfs/ を参照してください。
これらの方法のいずれかを使用すると、クエリは次のようになります。
SELECT clinicNo FROM words WHERE levenshtein(clinicNo, '1234A') < 2;
「しきい値」の値は、元の単語の長さに応じて変化する必要があることに注意してください。パーセンテージ値で考える方が良いです。つまり、単語の半分 = 50%、「用語」の半分 = 2 です< 2
。しかし、追加のエラーを説明するためにさらに進むことができます。
参照:ウィキペディア: レーベンシュタイン距離.