2011-06-22 1 views
1

文字列が文字列と一致するかどうかをチェックするスクリプトを作成したいのですか? 私は行のバルクデータを含むテーブルを持っています。 入力エラーがあっても指定された文字列が一致しているかどうかを調べる

recordId firstName lastName 
    1  jhon  bagman 
    2  kerio  control 
    3  michele levis 
    4  roger  federrer 

は、私はとにかく mysql-queryphp-codeにより、データベースから一致するレコードを検索したい

{ 
    [0]=>kerio 
    [1]=>micehle 
    [2]=>roget 
    [3]=>jon 
} 

次のように文字列の束を持っていました。 のKerioはKerioの micehleが ロジェはロジャー と一致している必要がありJONがJHON

と一致する必要がありますミケーレと一致する必要があります一致している必要があり、私は上記のように、それは入力ミスが含まれているにもかかわらず、一致文字列を検索することを意味します。

この解決方法は、すべての行でrunning a mysql queryまたはexecuting any "php code"のいずれかのロジックで解決します。

答えて

4

良いが、遅い/計算上の高価な方法は、Levenshtein Distanceです。マッチしたと見なされる前に単語がどのようにマングリングされているかを正確に指定することができます。しかし、MySQLはこれを直接サポートしていないので、PHPで実装する必要があります。

MySQLで直接クイック/ダーティな方法は、SOUNDEX()の値を比較することです。すばやく、信頼性も低いです。

SELECT ... 
FROM table 
WHERE SOUNDEX('kerio') IN (SOUNDEX(firstName), (SOUNDEX(lastName)) 
+0

ありがとう、Marc、SOUNDEX()関数を使用して実装します。それは私のために働いたかどうかをあなたに知らせるでしょうか? –

関連する問題