我试图用 ruby 编写一个方法,它可以:
- 查询并找到我们数据库中满足特定条件的所有重复项(第一个、、、和
name
所有last_name
匹配)account_id
title
- 遍历它们并结合
possible_unique_keys
所有重复项的字段内容 - 删除重复的记录,因为我们有 1 条记录,每条记录都有连接字段
我从一个快速查询开始,只提取出 dup 候选人:
results = ActiveRecord::Base.connection.select_all( "SELECT id, first_name, last_name, title, account_id, possible_unique_keys, device_contacts_count FROM CONTACTS AS a WHERE 1 < (SELECT Count(*) FROM CONTACTS AS b WHERE b.first_name = a.first_name AND b.last_name = a.last_name AND b.title = a.title AND b.account_id = a.account_id)" )
它使用我需要的字段提取似乎正确的结果集。当我尝试遍历它们时,第一个问题出现了:
results.each do |contact|
contact.first_name
end
我真的才刚刚开始尝试解决这个问题,但是当我尝试引用任何字段时出现错误,就像我在上面尝试引用时所做的那样first_name
:
NoMethodError:未定义
first_name
的方法#<Hash:0x00000006641cb0>