我有以下价格范围数组,如何执行查询来查找这些使用和运算符之间的价格范围
这是我的数组
["0-1000", "5001_15000", "15001_25000"]
这是否是我必须执行的唯一方法,否则是否有任何方法来执行此类过滤器
select * from posts where price between 0 and 1000 and price between 5001 and 15000
编辑-1
正如你所说,我在控制台中尝试过
a = [[0,1000],[5001 ,15000], [15001, 25000]]
(a[0].first..a[0].last)
这给出了0..1000
,当我尝试时
(a[0].first..a[0].last and a[1].first..a[1].last)
它只显示5001..15000
,请解释一下。
编辑2
只有这样我才能添加更多值
Post.where(price: a[0].first..a[0].last)
最佳答案
我将开始调整您的价格范围数组。 来自:
["0-1000", "5001_15000", "15001_25000"]
至
a = [[0,1000],[5001 ,15000], [15001, 25000]]
这将使您可以访问第一个和最后一个价格范围界限
(a[0].first..a[0].last))
上面的范围将产生 0..1000,您可以将其插入事件记录中(当然使用哈希语法)
示例:
Post.where(price: a[0].first..a[0].last)
使其成为可重复使用的范围,以便能够将它们链接起来以适应 And 或仅编写原始 sql。
希望这有帮助
关于mysql - postgresql Rails 价格范围过滤器之间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20166478/