php - MySQL 查询可以帮助找到相似的客户记录吗?

标签 php mysql database match

我有一个公司目录提供给我,他们希望在 MySQL 数据库中存储和更新。每条公司记录都没有唯一标识符,例如公司#1234。

这些字段通常用于邮寄列表、联系人姓名、公司名称、街道地址、城市、州、邮政编码、电话号码和公司类型。更新将再次作为 CSV 文件发送给我,没有公司唯一标识符号。

如何将数据库中存储的记录与新记录相匹配以便更新?在这个行业中,联系人姓名可以更改,甚至公司名称也可以更改,因为他们会添加和减去合作伙伴。他们的街道地址可以改变,因为当他们搬家时,他们甚至可以改变他们的电话号码。大多数公司都有网站 URL,因此希望它不会经常更改,但也很容易更改。

我在 MySQL 中看到有一个类似的匹配 %,这会是将记录与新信息匹配的答案吗?

我在 PHP 工作,如果有 PHP 解决方案的话。提前感谢帮助我解决这个问题的好心人!

最佳答案

没有主键,总是很棘手。

一线解决方案,确定最适合您要求的规则。

如果我是你,我会先去找客户确定一些识别相似记录的规则。这一步是必要的,因为没有主键,因为总是有重复输入或更新错误记录的机会。

规则可以很简单,比如:

1. Available fileds:
    contact name,
    company name,
    street address,
    city,
    state,
    zip code,
    phone number and
    type of company (I Hope this is industry)
2. We will first match company name for similarity like
    select * from table_name where company_name like '%$company_name%'
3. For all found records, match zip code and phone number. If match, break, record needs to be updated
4. If not match found in step 3, match street address. If match, break, record needs to be updated
5. & so on.

您的客户是决定这些规则的最佳人选,因为他是产品的所有者。

另一方面,向客户询问规则对于保证您的安全也很重要,因为在没有主键的情况下,即使经过所有的关注,也总是有可能重复记录和/或更新错误的记录。您可以通过良好的规则将机会降到最低。

关于php - MySQL 查询可以帮助找到相似的客户记录吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12577024/

相关文章:

php - 简单的 MySql 查询在 php 中不起作用

database - 触发器调用存储过程

asp.net - 数据驱动设计问题——数据计数

php - CodeIgniter:表单的时间选择器

php - 如何使用 javascript/php 清除日志文件?

php - 在 php 和 mysql 中使用占位符来防止注入(inject)

php - 在 mysql 数据库中存储 HTML 的最佳实践

php - 在 MySQL/PHP 中使用关系数据库过滤信息时出现问题

javascript - 创建 Pusher 表单 javascript 的新实例

php - 如何在 Windows 中为 PHP 7 安装 PDO 驱动程序 Informix