Sql 如何编写Where子句来处理特定值或任何值

Sql 如何编写Where子句来处理特定值或任何值,sql,ruby-on-rails,activerecord,Sql,Ruby On Rails,Activerecord,我有一个报告,Rails中有一个表,用户可以选择设置过滤器,如选择位置或选择日期范围,并通过ajax请求更新表 我可以写这个where子句,以便它可以包含任何日期/空格或所有位置吗 @orders = Order.where('created_at <= ? AND ? <= created_at AND location_id = ?', date_order_start, date_order_end, loc_filter) @orders=Order.where('crea

我有一个报告,Rails中有一个表,用户可以选择设置过滤器,如选择位置或选择日期范围,并通过ajax请求更新表

我可以写这个where子句,以便它可以包含任何日期/空格或所有位置吗

@orders = Order.where('created_at <= ? AND ? <= created_at AND location_id = ?', date_order_start, date_order_end, loc_filter)

@orders=Order.where('created_at我有时会使用如下查询语句和参数数组:

queries = []
args = []
if some_condition
  queries.push("created_at <= ?")
  args.push(whatever_date)
end

if another_condition
  queries.push("created_at >= ?")
  args.push(another_date)
end

@order = Order.where(queries.join(" AND "), *args)
查询=[]
args=[]
如果某种情况
push(“created_at=?”)
args.push(另一个日期)
结束
@order=order.where(querys.join(“AND”),*args)

这比我现在拥有的要好得多,并且在我的实现中工作得很好。很抱歉延迟。我一直希望有一个灵活的ActiveRecord/SQL解决方案。再次感谢!