2011-06-22 51 views
1

我想開發一個腳本,檢查字符串是否與任何字符串匹配? 我有表包含行的批量數據。查找給定的字符串是否匹配,儘管有輸入錯誤

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

我有一堆字符串如下

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

我想無論如何由mysql-queryphp-code找到從數據庫匹配的記錄。 的Kerio必須匹配的Kerio micehle必須匹配米歇爾 roget必須匹配羅傑 喬恩一定

意味着我要搜索匹配,即使它包含打字錯誤,如上圖所示匹配字符串JHON。

我想通過任何邏輯,所有行上的running a mysql queryexecuting any "php code"這個解決方案。

回答

4

一個好的但速度慢,計算量大的方法是Levenshtein Distance。它可以讓你指定一個單詞在不被視爲匹配之前是如何被損壞的。 MySQL不直接支持這個,但是,你必須在PHP中實現它。

直接在MySQL中的快速/髒方法是比較SOUNDEX()的值。它很快,但也不太可靠:

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

好的,謝謝馬克,我要通過使用SOUNDEX()函數來實現。會讓你知道它確實對我有用嗎? –

相關問題