如何修改此活动记录查询以首先检查完全匹配?

时间:2011-10-26 16:06:01

标签: sql ruby-on-rails activerecord

2 个答案:

答案 0 :(得分:2)

您可以尝试以下操作,但可能需要两个查询:

result = where("name = #{search}")
result.empty? ? where("name LIKE %#{search}%") : result

答案 1 :(得分:0)

def self.search(search)
     if search
          results = find(:all, :conditions => ['name LIKE ?', "#{search}"])
          results = find(:all, :conditions => ['name LIKE ?', "%#{search}%"]) if results.empty?
     end
end

对于复杂的搜索,我建议使用像sphinx这样的搜索引擎