【问题标题】:How to check duplicate and upload the new data when I use PHP to upload the CSV file into MySQL database当我使用 PHP 将 CSV 文件上传到 MySQL 数据库时如何检查重复和上传新数据
【发布时间】:2015-01-21 17:20:21
【问题描述】:

我有一个包含十列的 CSV 文件:

ID、fromDate、endDate、地址、price1、price2、column1、column2、column3、column4

但是我只是想将前六列插入到MySQL数据库中,最重要的是,如果数据库中存在属性(ID,fromDate,endDate,address)相同的元组,我们定义有两行标识。

例如: 数据库中存在一个元组:

(1000, 2014-11-21, 2014-11-23, 纽约, 100, 200)

现在,在 CSV 文件中,存在一行:

(1000, 2014-11-21, 2014-11-23, 纽约, 150, 250)

我们定义了两个元组是相同的。所以现在我们应该用 CSV 文件中的新数据来更新数据库中的数据。

也就是说,删除元组

(1000, 2014-11-21, 2014-11-23, 纽约, 100, 200)

并插入新元组:

(1000, 2014-11-21, 2014-11-23, 纽约, 150, 250)

如何做到这一点?

将CSV中的数据插入数据库时​​如何检查重复,一旦发现重复行,如何替换?

【问题讨论】:

    标签: php mysql csv duplicates


    【解决方案1】:

    你可以使用特定的mysql Replace

    REPLACE 的工作方式与 INSERT 完全相同,只是如果 表具有与 PRIMARY KEY 或 UNIQUE 的新行相同的值 index,在插入新行之前删除旧行。

    Insert ON duplicate,但使用这种方法,您必须列出所有字段。

    【讨论】:

    • 所以你的意思是我可以定义 ID, fromDate toDate address 为主键。并使用 Replace insert 语句来实现这一点?
    • @jyuan ,保持id为主键,但在id、fromDate、toDate、address上添加唯一索引。
    猜你喜欢
    • 2017-09-04
    • 1970-01-01
    • 1970-01-01
    • 2010-11-21
    • 2020-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多