加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 使用%Wildcards的Rails SQL查询在SQLite中工

发布时间:2020-12-16 22:43:18 所属栏目:百科 来源:网络整理
导读:我有一个查询我用于搜索:这样的条件: :conditions = ['family_name LIKE ? OR given_name LIKE ?',"%#{params[:search]}%","%#{params[:search]}%"] 查询在SQLite上本地工作正常,但是当我在PostgreSQL上推送到Heroku时,只有第一个%适用于family_name和giv
我有一个查询我用于搜索:这样的条件:
:conditions => ['family_name LIKE ? OR given_name LIKE ?',"%#{params[:search]}%","%#{params[:search]}%"]

查询在SQLite上本地工作正常,但是当我在PostgreSQL上推送到Heroku时,只有第一个%适用于family_name和given_name.换句话说,它将匹配出现在单词结尾但不出现在开头或中间的关键字.

例:
现有记录包含:family_name => “华盛顿”和:given_name => “乔治”

搜索“ington”或“rge”将检索此记录.搜索“Wash”或“Geo”不会.

我是一个新用户,对于rails来说我是个新手.在此先感谢您的帮助.

相关主题:
1
2

这是我正在使用的修复程序:

:conditions => ['LOWER(family_name) LIKE ? OR LOWER(given_name) LIKE ?',"%#{params[:search].downcase}%","%#{params[:search].downcase}%"]

解决方法

LIKE是Postgres中区分大小写的运算符.对于不区分大小写的模式匹配,请使用ILIKE或 other standard methods.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读