SQL数据查询问题,求解!

吾同树 发布于 2015/06/05 09:59
阅读 267
收藏 0

MySQL,有表A(a,b,c,d,e),e是主键,字段a,b及值为1的c本来应该也可以确定记录的唯一性,但是现在数据库有很多脏数据,影响了部分业务,需要清理掉脏数据,规则就是对于异常的记录组根据字段d(timestamp类型)排序,保留最近的一条记录,删掉其他。

不知道表达清楚没有,表数据量较大,求高手解决,谢谢!

加载中
1
降龙罗汉
吾同树
吾同树
回复 @卜祥龙 : 真是大坑,谢了
降龙罗汉
降龙罗汉
回复 @吾同树 : 相同的道理,写一个子查询代替MIN(id),测试好了再到生产环境搞,搞砸了我可不负责~
吾同树
吾同树
需求很像,不过我的分组中保留的是时间d距离最近的一条记录,就需要根据d排序然后再取得要保留记录的主键e,不能直接MIN(id),不知道怎么解?
0
错II过
错II过
什么叫做 异常的记录组
吾同树
吾同树
就是这一组数据a,b,c一样,并且c值为1
0
harleyliao
harleyliao

数据重复了吧,如果是的话走以下三个步骤

1.通过sql将重复数据清理

2.通过唯一索引对数据进行约束

3.代码层面避免出现重复数据,比如加锁

吾同树
吾同树
我也知道。。前人留下的坑,现在要清楚脏数据
0
赵小布007
赵小布007
去重查询,备份数据,然后清空表,导入数据
0
lyle_luo
lyle_luo
哈哈,我也有类似的情况,MIN(id)解决
返回顶部
顶部