删除MySQL重复数据的方法
2019-01-05 10:02:09 来源:易采站长站 作者:刘景俊
由上图可见,同一个时间点的同一个设备的数据有冗余,现在我们要把这些冗余数据去掉。
解决方法
思路是这样的:首先应该按照conf_id和时间点来判断,进行分组(group by)查询,每组中再取一个就可以。分组是很简单,但是分组怎么取一个呢?我采用了中间表的形式。
创建中间表,并把数据导入中间表
在中间表中增加一个字段,此字段是自增长的。
删除无用数据
先查询一下
删除不对的数据
慢着,输出错误:
You can't specify target table 'perf_linux_t' for update in FROM clause
不能删除啊,那只能再建一个中间表了。
再建中间表
转变思路,不删除不符合的数据,而是把符合的数据存到这张新表中。
把这张表中的无用列删除
导回数据
删除原来的数据
插入数据
删除中间表
总结
通过这个方法,数据变为了42387条,删除了冗余的数据。但实际上程序的问题并没有完全定位,还需要观察才能定位问题。
希望本文所述对大家的mysql数据库程序设计有所帮助。
- 热点聚合:
暂时禁止评论













闽公网安备 35020302000061号