查询“相似”数值的最有效方法是什么?

时间:2012-03-21 21:36:12

标签: php mysql

是否可以使用MySQL查询来执行此类检查?如果没有,用PHP这样的语言执行此检查的最有效方法或算法是什么?

我的任务是:

  

进入新客户端时,请检查用户针对clients表输入的SSN,以查看是否有任何其他记录与输入的SSN类似 1

     

1 类似被定义为具有一个值,其中数据库中客户端SSN中的5个数字与在值和位置中输入的SSN匹配。 < / p>

可以返回的数据示例:

输入值:599151223(来自表格)

匹配值: 5 33 1 4 122 8

粗体数字是与位置和值中输入的SSN匹配的数字。

1 个答案:

答案 0 :(得分:1)

我不认为您可以使用SQL(可能仅使用FULL-TEXT搜索)。

使用php的最简单方法是:

<?php

$ssn = 599151223;

$compare = 533141228;

$ssn = str_split($ssn);
$compare = str_split($compare);

$match_count = 0;

foreach($ssn as $key => $value) {
    if ($compare[$key] == $value)
        $match_count++;
}

if ($match_count == 5) 
    doSomething();

?>