How to make LIKE clause case-insensitive?

前端 未结 2 442
悲&欢浪女
悲&欢浪女 2020-12-16 03:29

I\'m using a LIKE clause in Ruby On Rails. When I try to search for records by typing \"more\" it doesn\'t return anything, but when I do with \"Mor

2条回答
  •  天命终不由人
    2020-12-16 03:42

    I assume you're using Postgres.

    You can use ILIKE

    Job.where('title ILIKE ? OR duration ILIKE ?', "%#{params[:search]}%", "%#{params[:search]}%")
    

    Or a some tricky hack lower():

    Job.where('lower(title) LIKE lower(?) OR lower(duration) LIKE lower(?)', "%#{params[:search]}%", "%#{params[:search]}%")
    

提交回复
热议问题