一尘不染

Levenshtein:MySQL + PHP

mysql

$word = strtolower($_GET['term']);

$lev = 0;

$q = mysql_query("SELECT `term` FROM `words`"); 
while($r = mysql_fetch_assoc($q)) 
{ 
    $r['term'] = strtolower($r['term']);

    $lev = levenshtein($word, $r['term']);

    if($lev >= 0 && $lev < 5)
    {
        $word = $r['term'];
    }
}

如何将所有内容转移到一个查询中?不需要查询所有术语并使用PHP进行过滤。


阅读 275

收藏
2020-05-17

共1个答案

一尘不染

您需要在MySQL中使用levenshtein函数并进行如下查询

$word = mysql_real_escape_string($word);
mysql_qery("SELECT `term` FROM `words` WHERE levenshtein('$word', `term`) BETWEEN 0 AND 4");
2020-05-17