重构 如何从数据库中取重复记录

lionzixuanyuan · 2013年09月03日 · 最后由 lhy20062008 回复于 2014年03月26日 · 3228 次阅读

在数据库中有一张表,其中有个 order_number 字段 现在有这么一个需求:查询出 order_numbe r重复的所有记录

我的想法如下: 将所有记录的 order_number 取出组成 数组A 然后将 数组A 去重,得到 数组B 接着用 数组A - 数组B 得到 数组C 数组C 即为order_number重复的项目 最有根据 数组C 即可查询出所有order_number重复的记录

但是,我的服务挂了,目测是因为数据量过大的缘故,请问大家有没有更好的想法,大家讨论下

共收到 4 条回复

少年,应该是SQL语句来干这事

Model.select("id, count(id) as quantity").group(:order_number).having("quantity > 1")

Model.group(:order_number).having("count(*) > 1")

Model.group(:order_number).having("count(id) > 1") 这样更有效率

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册