我在Ruby On Rails中使用LIKE子句。当我尝试通过键入&#34;更多&#34; 来搜索记录时,它不会返回任何内容,但是当我使用&#34;更多&#34; <时/ strong>,然后它返回包含更多关键字的记录,因此它似乎以区分大小写的方式运行。
是否可以使此不区分大小写?
以下是我目前使用的查询:
Job.where('title LIKE ? OR duration LIKE ?', "%#{params[:search]}%", "%#{params[:search]}%")
答案 0 :(得分:14)
我认为你正在使用Postgres。
您可以使用ILIKE
Job.where('title ILIKE ? OR duration ILIKE ?', "%#{params[:search]}%", "%#{params[:search]}%")
或者是一些棘手的黑客lower()
:
Job.where('lower(title) LIKE lower(?) OR lower(duration) LIKE lower(?)', "%#{params[:search]}%", "%#{params[:search]}%")
答案 1 :(得分:0)
尝试这样的事情
def query_job(query)
job_query = "%#{query.downcase}%"
Job.where("lower(title) LIKE ? or lower(duration) LIKE ?", job_query, job_query)
end
query_job(params[:search])