如何删除mysql表中的重复值

时间:2011-02-04 16:02:35

标签: php mysql

我在类型为my_sale_time的mysql表(timestamp)中有列....实际上,行值看起来像这样

2010-12-01 14:38:07
2010-12-01 17:14:18
...

所以我需要mysql查询来删除那些日期在表格中重复多次的值.....我在样本sale_time_value中提到.....只有日期重复具有相同的值,但时间是不同的...所以我想获取所有行,日期重复多次并删除重复日期

2 个答案:

答案 0 :(得分:7)

删除重复行的基本原则:

CREATE TEMPORARY TABLE tmptbl AS SELECT DISTINCT * FROM my_sale_time;
DELETE FROM my_sale_time;
INSERT INTO my_sale_time SELECT * FROM tmptbl;

您可能必须指定列和WHERE子句(我真的不了解您的标准)。 当然,您应该在开发服务器上测试它,并且不要忘记将它作为具有锁定表的单个事务运行。

答案 1 :(得分:0)

如果您有auto_increment字段,请使用:

DELETE FROM
    `mytable`
WHERE
    `my_auto_increment_field` NOT IN (
        SELECT
            MAX(`my_auto_increment_field`)
        GROUP BY
            `my_sale_time`
    );