Ruby on rails 查询数据时,如何使用rails进行分组以避免重复?

Ruby on rails 查询数据时,如何使用rails进行分组以避免重复?,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我有以下疑问: @items = AddressBook.select('email').where(:domain => 'hospital.com'). 这将返回约100封电子邮件,其中许多是重复的。如何使用rails仅返回唯一的电子邮件 谢谢试试这个 @items = AddressBook.select('DISTINCT email').where(:domain => 'hospital.com') 试试这个 @items = AddressBook.select('

我有以下疑问:

@items = AddressBook.select('email').where(:domain => 'hospital.com').
这将返回约100封电子邮件,其中许多是重复的。如何使用rails仅返回唯一的电子邮件

谢谢

试试这个

@items = AddressBook.select('DISTINCT email').where(:domain => 'hospital.com')
试试这个

@items = AddressBook.select('DISTINCT email').where(:domain => 'hospital.com')
生成的sql相同,但语法不同


生成的sql相同,但语法不同

我希望避免在数据库上执行此操作,因为我没有电子邮件字段的索引,这将非常费力?\
DISTINCT
是一个非常标准的sql语句。我打赌你的数据库可以处理得很好。试着从两个方面查看控制台中的毫秒计数,看看它对一组相当有代表性的数据有什么影响。@Anaprentice,我支持Chris。
where
条件显著缩小了结果集,因此DB-SQL方法更好。根据经验,当我必须在SQL代码和Ruby代码之间进行选择时,我总是选择SQL代码。我希望避免在数据库上执行此操作,因为我没有电子邮件字段的索引,这将非常费力?\
DISTINCT
是一个非常标准的SQL语句。我打赌你的数据库可以处理得很好。试着从两个方面查看控制台中的毫秒计数,看看它对一组相当有代表性的数据有什么影响。@Anaprentice,我支持Chris。
where
条件显著缩小了结果集,因此DB-SQL方法更好。根据经验,当我必须在SQL代码和Ruby代码之间进行选择时,我总是选择SQL代码。