我有一个位置模型,表看起来像
| ID|名称|VIN| ip地址|创建于|更新于|
| --|--|--|--|--|--|
| 0 |默认| 0 |0.0.0.0/0|2021-11-08 11:54:26.822623| 2021-11-08 11:54:26.822623|
| 1 |admin| 1 |10.108.150.143|2021-11-08 11:54:26.82885| 2021-11-08 11:54:26.82885|
| 2 |V122| 122 |10.108.150.122|2021-11-08 11:54:26.82885| 2021-11-08 11:54:26.82885|
| 3 |V123| 123 |10.108.150.123|2021-11-08 11:54:26.82885| 2021-11-08 11:54:26.82885|
| 4 |V124| 124 |10.108.150.124|2021-11-08 11:54:26.82885| 2021-11-08 11:54:26.82885|
| 5 |V122| 122 |10.108.150.122|2021-11-08 11:54:26.82885| 2021-11-08 11:54:26.82885|
| 6 |V125| 122 |10.108.150.125|2021-11-08 11:54:26.82885| 2021-11-08 11:54:26.82885|
位置模型中的方法
def self.find_all_non_duplicate
return self.find(:all, :conditions => "id <> 1")
end
字符串
我想获取位置表的所有条目,除了id = 1的条目,它只包含基于列ip_address的许多重复项中的第一个条目。
由于id = 2和id = 5的ip_address重复,我想保留很多重复的第条,即id = 2。
该预期的结果是
| ID|名称|VIN| ip地址|创建于|更新于|
| --|--|--|--|--|--|
| 0 |默认| 0 |0.0.0.0/0|2021-11-08 11:54:26.822623| 2021-11-08 11:54:26.822623|
| 2 |V122| 122 |10.108.150.122|2021-11-08 11:54:26.82885| 2021-11-08 11:54:26.82885|
| 3 |V123| 123 |10.108.150.123|2021-11-08 11:54:26.82885| 2021-11-08 11:54:26.82885|
| 4 |V124| 124 |10.108.150.124|2021-11-08 11:54:26.82885| 2021-11-08 11:54:26.82885|
| 6 |V125| 122 |10.108.150.125|2021-11-08 11:54:26.82885| 2021-11-08 11:54:26.82885|
id为1和5的条目将被忽略
1条答案
按热度按时间bbmckpt71#
您需要的是最近向RoR提出的
distinct on
here,但not yet merged,正如@engineersmnky所指出的那样。在原始SQL形式中,它看起来像这样:字符串
也就是说
型
或者,直到新功能被接受:
型
全db侧测试:
型