2011-06-22 34 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()函数来实现。会让你知道它确实对我有用吗? –

相关问题