Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何删除mysql表中的重复值_Php_Mysql - Fatal编程技术网

Php 如何删除mysql表中的重复值

Php 如何删除mysql表中的重复值,php,mysql,Php,Mysql,我在mysql表my_sale_time中有一列,类型为timestamp…实际上,行值如下所示 2010-12-01 14:38:07 2010-12-01 17:14:18 ... 所以我需要mysql查询来删除表中日期重复多次的值…正如我在示例销售中提到的那样\u time\u value…只有日期重复,值相同,但时间不同…所以我想得到所有行,重复多次日期并删除重复日期删除重复行的基本原则: CREATE TEMPORARY TABLE tmptbl AS SELECT DISTINCT

我在mysql表my_sale_time中有一列,类型为timestamp…实际上,行值如下所示

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

所以我需要mysql查询来删除表中日期重复多次的值…正如我在示例销售中提到的那样\u time\u value…只有日期重复,值相同,但时间不同…所以我想得到所有行,重复多次日期并删除重复日期

删除重复行的基本原则:

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子句。我不太理解您的条件。
当然,您应该在开发服务器上测试运行它,不要忘记将其作为带有锁定表的单个事务运行。

如果您有一个自动增量字段,请使用以下命令:

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

首先,您需要确定要保留的重复行的标准,因为所有列都不是精确的重复。我假设所有其他列都相同,只是时间戳的时间部分不同?您是否在所讨论的表上有一个自动递增列,表明存在重复?好的,我将告诉您我需要什么,,,,,我有列'sale_time',它存储了date和time值…..所以,我想要的是,我只想删除重复超过1的日期,,,,这里是示例:2010-12-01 14:38:072010-12-01 17:14:18。如果您注意到这些值,您可以发现日期是相同的,但时间是不同的,因此任何我想从表中删除此类值的方式…如何?运行创建临时表tmptbl作为选择DISTINCT DATEsale_time,*from my_sale_time,并检查tmptbl是否包含您想要的行。好的,我将告诉您我需要什么,,,,,我有列'sale_time',它存储了date和time值…..所以,我想要的是,我只想删除重复超过1的日期,,,,这里是示例:2010-12-01 14:38:072010-12-01 17:14:18。若你们注意到这些值,你们可以发现日期是相同的,但时间是不同的,所以我想如何从表中删除这些类型的值…如何?你们有你们的答案。不要先喂我饼干now@shahid:请停止再次发布相同的评论。这并不能让事情变得更清楚!