gpt4 book ai didi

mysql - 重写 SQL 查询以在 heroku 上工作

转载 作者:行者123 更新时间:2023-11-29 01:25:11 25 4
gpt4 key购买 nike

我如何重写这个 Rails 查询以在 Heroku (Portegres) 上运行

@students = Student.find(:all, 
:conditions =>["(concat(first_name, ' ', last_name) LIKE ?) OR
(concat(first_name, ' ', middle_names, ' ', last_name) LIKE ?)",
"%#{params[:search]}%", "%#{params[:search]}%"]
)

最佳答案

也遇到这个问题了。 Postgres 对 LIKE 运算符区分大小写,因此这是我在项目中所做的。另外,我不喜欢在本地运行 postgres,所以我让它在开发中使用 LIKE (mysql/sqlite) 运行,在生产中使用 ILIKE (postgres) 运行。 ILIKE 是“不区分大小写的”

/config/environment.rb

  DATABASE_OPERATOR = {
:like_operator => "LIKE"
}

/config/environments/生产.rb

  DATABASE_OPERATOR = {
:like_operator => 'ILIKE' #postgres awfulness
}

查询

@students = Student.find(:all, :conditions => ['(concat(first_name, " ", last_name) #{DATABASE_OPERATOR[:like_operator]} ?) OR (concat(first_name, " ", middle_names, " ", last_name) #{DATABASE_OPERATOR[:like_operator]} ?)', "%#{params[:search]}%", "%#{params[:search]}%"])

关于mysql - 重写 SQL 查询以在 heroku 上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3132816/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com