Ole*_*sko 63 ruby-on-rails unique ruby-on-rails-3
如何从表中的列获取唯一值?例如,我有这个Products表:
ID NAME CATEGORY
1 name1 1st_cat
2 name2 2nd_cat
3 name3 1st_cat
Run Code Online (Sandbox Code Playgroud)
在这里,我想只获得2个值 - 1st_cat和2nd_cat:
<%Products.each do |p|%>
<%=p.category%>
<%end%>
Run Code Online (Sandbox Code Playgroud)
use*_*833 138
还有两种方法:
Products.select(:category).map(&:category).uniq
Products.uniq.pluck(:category)
Run Code Online (Sandbox Code Playgroud)
Tha*_*son 26
我想你可以这样做:
<% Products.select("DISTINCT(CATEGORY)").each do |p| %>
<%= p.category %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
资料来源:http://guides.rubyonrails.org/active_record_querying.html#selecting-specific-fields
这样做可以完成数据库服务器中的所有工作.结果是一个简单的数组.
<% Product.distinct(:category).pluck(:category).each do |category|
<%= category %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
Rails将生成适用于任何数据库的SQL(Postgres,MySQL等).
SELECT DISTINCT "products"."category" FROM "products"
Run Code Online (Sandbox Code Playgroud)
试试这个(在rails控制台中)
Product.group(:category)
Product.group(:category).each { |p| p.name }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
66518 次 |
| 最近记录: |