2014-06-17 67 views
0

我需要通过使用范围从表中获取一些值。选择值BETWEEN [array] AND [array]

实施例: 我需要得到其中“值”是4至10。

Result.where('values BETWEEN ? AND ?', 4, 10) 

我还需要获得其中“值”是11与20

的所有值的所有值
Result.where('values BETWEEN ? AND ?', 11, 20) 

是否有可能得到这与一个查询?

+2

您可以'UNNEST'阵列和'JOIN'这个嵌套的表格过滤您的结果。 –

回答

3
Result.where('values BETWEEN ? AND ? OR values BETWEEN ? AND ?', 4, 10, 11, 20) 

,甚至更短的如果所有的值都是整数(因为BETWEEN在PostgreSQL是包容的两端):

Result.where('values BETWEEN ? AND ?', 4, 20)