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

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

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

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

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

少年,应该是 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") 这样更有效率

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