gpt4 book ai didi

ruby-on-rails - Rails 5 ActiveRecord 删除重复项

转载 作者:行者123 更新时间:2023-12-03 16:06:42 26 4
gpt4 key购买 nike

我有一个 Rails 5 应用程序。我有一个表,里面装满了从各种来源获取的 URL 数据:

id     url
1 http://google.com
2 http://yahoo.com
3 http://msn.com
4 http://google.com
5 http://yahoo.com
6 http://askjeeves.com

如何从此表中删除重复项?

最佳答案

没有循环的 SQL 解决方案:

Model.where.not(id: Model.group(:url).select("min(id)")).destroy_all

或者
Model.where.not(id: Model.group(:url).select("min(id)")).delete_all

或者
dup_ids = Model.group(:url).select("min(id)").collect{|m| m['min(id)']}
Model.where.not(id: dup_ids).delete_all
#Model.where.not(id: dup_ids).destroy_all

这将删除所有重复记录,并保留重复记录的最小 id 记录。

关于ruby-on-rails - Rails 5 ActiveRecord 删除重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40478467/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com