我在 MySQL/InnoDB 中有一个 Faq 类,它具有实例关键字,例如
apple,juice,fruit
我有一个类方法
def self.find_by_string string = nil
unless string.present?
return
end
keywords = string.gsub(/(\,|\.|\s)/, " ").split.uniq.join("|")
Faq.find(
:all,
:conditions => "keywords like '%" + keywords.gsub(/\|/, "%' or keywords like '%") + "%'"
)
end
我需要根据在其中找到的关键字的数量来排序 find 的结果。我的意思是,如果 SQL 找到 4 个关键字,它的结果必须高于 3 个关键字。怎么做?