使用Rails 4,Ruby 2,MySql
我想在我的数据库中找到所有记录的重复记录 - 但不是原始记录本身。
这样我就可以update_attributes(:duplicate => true)
对这些记录进行处理,并保留原始未记录为副本的记录。
你可以说我正在寻找Uniq
的反面*我不想要Uniq值,我想要事后不是uniq的所有值。我不希望所有具有重复的值都包含原始值。
我不介意使用纯SQL或Ruby,但我更喜欢使用活动记录来保持Railsy。
假设该表名为“Leads”,我们正在寻找那些字段“telephone_number”相同的表。我会单独留下记录1并将2,3和4标记为duplicate = true。
*
如果我想要与Uniq相反,我可以做Find keep duplicates in Ruby hashes
b = a.group_by { |h| h[:telephone_number] }.values.select { |a| a.size > 1 }.flatten
但这就是所有的记录,我想要所有重复的记录,而不是我正在比较它的原始记录。
答案 0 :(得分:1)
我假设您的查询返回所有'潜在客户'在阵列b中具有相同的电话号码。然后你可以使用
b = b.shift
从b数组中取出第一个元素。然后,您可以继续原始的想法update_attributes(:duplicate => true)