总而言之,我有两个不同的系统,在两个系统中我都有客户,不幸的是两个系统都允许您徒手输入商家名称,所以最终得到下面的例子。
Column A has a value of "St John Baptist Church"
Column B has a value of "John Baptist St Church"
我需要提出的是一个可以比较两列以查找最匹配的值的查询。 从那里我计划编写一个Web应用程序,我可以让某人通过并验证所有条目。我会举一些我已经做过的例子,不幸的是我老实说甚至不知道我要求的是否可能。我认为虽然在这个时代,我确信我不是第一个试图尝试这个的人。
答案 0 :(得分:1)
你可以尝试创建一个类似这个php脚本的脚本来帮助你:
$words = array();
$duplicates = array();
function _compare($value, $key, $array) {
global $duplicates;
$diff = array_diff($array, $value);
if (!empty($diff)) {
$duplicates[$key] = array_keys($diff);
}
return $diff;
}
$mysqli = new mysqli('localhost', 'username', 'password', 'database');
$query = "SELECT id, business_name FROM table";
if ($result = $mysqli->query($query)) {
while ($row = $result->fetch_object()) {
$pattern = '#[^\w\s]+#i';
$row->business_name = preg_replace($pattern, '', $row->business_name);
$_words = explode(' ', $row->business_name);
$diff = array_walk($words, '_compare', $_words);
$words[$row->id][] = $_words;
$result->close();
}
}
$mysqli->close();
这没有经过测试,但你需要这样的东西,因为我不认为单独使用SQL是可能的。
----------编辑----------
或者您可以对评论中的人推荐Levenshtein distance in T-SQL
进行研究希望它有所帮助,祝你好运!