php - 如何从 mysql 数据库中删除重复(字段)条目?

标签 php mysql duplicates duplicate-data unique-index

我想删除MySQL数据库中表的重复记录。 enter image description here

在该图像中,id 是自动递增的,但我希望 customer_invoice_id 是唯一的,但想删除重复的记录。例如,我想删除 1104 条记录,但现在我删除了 1105,这是此查询的最新记录。

ALTER IGNORE TABLE table ADD UNIQUE KEY idx1(customer_invoice_id); 

最佳答案

在设置约束之前,先进行手动删除。

DELETE  a
FROM    tableName a
        LEFT JOIN
        (
            SELECT  customer_invoice_id, MAX(id) id
            FROM    tableName 
            GROUP   BY customer_invoice_id
        ) b ON  a.customer_invoice_id = b.customer_invoice_id AND
                a.id = b.id
WHERE   b.customer_invoice_id IS NULL

这将保留每个 customer_invoice_id 的最新记录。你现在可以执行这条语句了,

ALTER TABLE tableName ADD UNIQUE KEY idx1(customer_invoice_id)

演示,

关于php - 如何从 mysql 数据库中删除重复(字段)条目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18270594/

相关文章:

php - CodeIgniter session ID 更改且不工作

php - 函数内部的全局数据库连接

java - 重复是因为 Oracle 太快还是多线程?

php - Laravel - CircleCI - 在 phpunit 上失败

php - MySQL 查询优化 - 分组值

java - 如何从JAVA中的变量数组插入sql表

mysql - 将表连接到另一个查询的查询

php - 删除重复的 ID?

php - 成功上传到文件夹,但mysql上没有数据

单表mysqldump返回errno 32