gpt4 book ai didi

sql - 使用 * 通配符按条件查找

转载 作者:数据小太阳 更新时间:2023-10-29 08:05:36 24 4
gpt4 key购买 nike

我有一个带有两个参数的搜索表单。如果参数为空,我想搜索所有内容。

var_1 = params[:var_1].blank? ? "*" : params[:var_1]
var_2 = params[:var_2].blank? ? "*" : params[:var_2]

@mymodels = MyModel.find(:all,:conditions=>["var_1 = ? and var_2 = ?",var_1,var_2])

这是我得到的:

SELECT ... WHERE (var_1 = '*' and ...

我需要的是:

SELECT ... WHERE (var_1 = * and ...

有什么建议吗?

最佳答案

我会有条件地建立标准列表。即如果相应的参数不为空,则仅在查询中包含一个字段:

conditions = []
values = []
[:var1, :var2].each do |field|
unless params[field].blank?
conditions << "#{field} = ?"
values << params[:field]
end
end

然后运行查找:

MyModel.find(:all, :conditions => [conditions.join(" AND "), values])

关于sql - 使用 * 通配符按条件查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8986410/

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