Ram*_*ses 1 ruby mysql activerecord ruby-on-rails ruby-on-rails-3.2
我正在使用Rails 3和MySQL数据库,我需要以编程方式创建这样的查询:
select * from table where category_name like '%category_name_1%'
OR category_name like '%category_name_2%'
(...snip...)
OR category_name like '%category_name_n%'
Run Code Online (Sandbox Code Playgroud)
鉴于表格大小和项目范围(我认为最多500行),我觉得使用像思考sphinx这样的东西会有点过分.我知道我可以通过直接编写查询字符串来完成此操作,但想知道是否有ActiveRecord方法来执行此操作.在官方指南中没有提到这一点,我现在谷歌搜索了很长一段时间,只是空手而归:(
另外,有没有理由(可能是Rails的原因?)不包含OR子句?
谢谢!
假设您有一个names
包含类别名称的数组:
Model.where( names.map{"category_name LIKE ?"}.join(" OR "),
*names.map{|n| "%#{n}%" } )
Run Code Online (Sandbox Code Playgroud)