gpt4 book ai didi

ruby-on-rails - 如何在 Arel 和 Rails 中执行 LIKE 查询?

转载 作者:行者123 更新时间:2023-12-01 23:08:57 26 4
gpt4 key购买 nike

我想做类似的事情:

SELECT * FROM USER WHERE NAME LIKE '%Smith%';

我在阿雷尔的尝试:
# params[:query] = 'Smith'
User.where("name like '%?%'", params[:query]).to_sql

然而,这变成了:
SELECT * FROM USER WHERE NAME LIKE '%'Smith'%';

Arel 正确地包装了查询字符串 'Smith',但因为这是一个 LIKE 语句,所以它不起作用。

如何在 Arel 中执行 LIKE 查询?

附言额外奖励——我实际上是在尝试扫描表上的两个字段,包括名称和描述,以查看是否有任何匹配的查询。这将如何运作?

最佳答案

这是在 arel 中执行类似查询的方式:

users = User.arel_table
User.where(users[:name].matches("%#{user_name}%"))

PS:
users = User.arel_table
query_string = "%#{params[query]}%"
param_matches_string = ->(param){
users[param].matches(query_string)
}
User.where(param_matches_string.(:name)\
.or(param_matches_string.(:description)))

关于ruby-on-rails - 如何在 Arel 和 Rails 中执行 LIKE 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4430578/

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