代码之家  ›  专栏  ›  技术社区  ›  mattC

Rails-Where Like查询不返回所有大写字母[重复]的结果

  •  0
  • mattC  · 技术社区  · 6 年前

    我在Ruby On Rails中使用了LIKE子句。当我试图通过键入 “更多” “更多” ,然后返回包含 关键字,所以它的行为似乎是区分大小写的。

    以下是我当前使用的查询:

    Job.where('title LIKE ? OR duration LIKE ?', "%#{params[:search]}%", "%#{params[:search]}%")
    
    0 回复  |  直到 6 年前
        1
  •  16
  •   Roman Kiselenko    8 年前

    我猜你在用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]}%")
    
        2
  •  0
  •   sa77    6 年前

    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])