我有这种方法对sqlite3数据库上的名称进行模糊搜索,这意味着如果你搜索字母“j”,它将返回任何在任何地方都有“j”的条目:“John”和“Vijay”两者都匹配。但是,当我将rails应用程序推送到Heroku时,应用程序使用postgres,并且查询不再有效。根据这个SO答案postgres full text search like operator,postgres确实使用了LIKE运算符。任何人都可以看到我需要改变以使其在postgres上工作吗?
def getEmployeeByName
respond_with Employee.select("id, firstname, lastname, position").where("UPPER(firstname || ' ' || lastname) LIKE ('%' || ? || '%')", params[:query])
end
注意,此方法是使用Ruby on Rails查询助手编写的SQL查询。
答案 0 :(得分:2)
我将LIKE更改为ILIKE以使搜索大小写不敏感。问题解决了。