使用 compairing 2 tables 处理最合适的名称

我有 2 个 mysql 表:

Customers(id,short_name,full_name, contact, address, amount)
old_customer_record(id, name, contact, address, amount)

在这种情况下,我有超过 2000 条记录,我想确认所有老客户都包含在新表中。

但我不能直接检查,因为,

  • 一些拼写错误或有点不同, 例如旧的N.IDUNIL RANGAJEEWA和新的N.INDUNIL RANGAJEEWA与联系电话相同,例如071-12345670711234567

  • 金额可能会在新表中更新。

  • 旧表中的地址在旧表中不完整,例如Somewhere,SomeProvince123/B,Somewhere,SomeProvince

我想为此做什么?或者有可能吗?我的代码如下,

for ($i=1; $i < 2000; $i++) {

$sql = "SELECT * FROM old_customers WHERE id = '$i'";

$result = $connect->query($sql);


if ($result->num_rows > 0) {

    $row = $result->fetch_array();


    $name = $row[1];


    $sql1 = "SELECT * FROM customers WHERE  short_name LIKE '%$name%'";

    $result1 = $connect->query($sql1);

    while ($row1 = $result1->fetch_array()) {

        $output['data'][] = array(

               $row1[0],

               $row1[1],

               $row1[2],

               $row1[3],

               $row1[4]

             );

    }

  } // if num_rows

 }


echo json_encode($output);


开满天机
浏览 88回答 1
1回答

小怪兽爱吃肉

选择最适合比较表的列。我明白了name,contact最适合那个。Address许多记录可能有不同的形式和金额可能相同(不是唯一的)。清理两个表中的电话号码。删除空格-和其他不需要的字符检查号码的长度,如果太短,请添加前导零或斯里兰卡的正确区号。比较两个关于电话号码的表格。检查旧表中不存在的这些记录,并手动检查它们以查找相似的名称等。2000 条记录仍然不是很大。您可能会检查较小的数字,例如 20。但我不确定您表格的结构和内容。
打开App,查看更多内容
随时随地看视频慕课网APP