使用php和levenshtein在MySQL查询中搜索类似字符串

使用php和levenshtein在MySQL查询中搜索类似字符串,php,pdo,Php,Pdo,我试图找出在PHP中使用levenshtein()的“最佳”选项 当用户将新客户输入数据库时,我使用PDO语句 我想做的是在添加新客户之前进行查询搜索,看看该客户是否已经在数据库中,以避免可能的重复条目。我不能使用匹配/对照,因为两次输入的客户可能不同 这将根据数据库检查名字 $input1 = $_POST['FIRSTNAME']; $result = array(); $count=1; $find = $dbh->query('SELECT Billing

我试图找出在
PHP
中使用
levenshtein()
的“最佳”选项

当用户将新客户输入数据库时,我使用PDO语句

我想做的是在添加新客户之前进行查询搜索,看看该客户是否已经在数据库中,以避免可能的重复条目。我不能使用
匹配/对照
,因为两次输入的客户可能不同

这将根据数据库检查名字

$input1 = $_POST['FIRSTNAME'];

$result = array();
$count=1;
            $find = $dbh->query('SELECT BillingFirstName FROM Customers');

            while ($row = $find->fetch (PDO::FETCH_ASSOC))
                 {
                    $fn = $row['BillingFirstName'];
                    array_push($result, $fn);
                 }


        foreach ($result as $word) {

                    echo $word.'<br>';

                        $shortest = -1;
                        $lev = levenshtein($input1, $word);

                    if ($lev == 0) {

                        $closest = $word;
                        $shortest = 0;
                        break;
                    }

                    if ($lev <= $shortest || $shortest < 0) {

                        $closest  = $word;
                        $shortest = $lev;
                    }

            }


        echo "Input word: $input1\n";
        if ($shortest == 0) {
            echo "Exact match found: $closest\n";
        } else {
            echo "Did you mean: $closest?\n";
        }
$input1=$\u POST['FIRSTNAME'];
$result=array();
$count=1;
$find=$dbh->query('SELECT BillingFirstName FROM Customers');
而($row=$find->fetch(PDO::fetch_ASSOC))
{
$fn=$row['BillingFirstName'];
数组推送($result,$fn);
}
foreach($result作为$word){
回显$word.“
”; $shortest=-1; $lev=levenshtein($input1,$word); 如果($lev==0){ $closest=$word; $shortest=0; 打破 }
如果($lev,速度会非常慢,尤其是如果数据库大小不一,那么应该使用MySQL中的levenshtein函数(而不是php)


这里有一个很好的例子:

这会非常慢,特别是如果数据库是任意大小的,那么您应该使用MySQL中的levenshtein函数(而不是php)


这里有一个很好的例子:

我已经尝试过这个函数,与php函数相比,我发现它非常慢。我没有做过实际的基准测试,只是坐在这里等待它运行。上面的php需要2秒,mysql函数需要30+左右。我已经尝试过这个函数,与php函数相比,我发现它非常慢。我没有做任何实际的基准测试,只是坐在这里等待它运行。上面的php需要2秒,mysql函数需要30+左右。