我有一个包含 min
和 max
列的表。我想搜索一组数字介于 min
和 max
之间的行。
示例:我有一组 (3, 4, 11, 18)
。
我的查询过滤可能如下所示:
(3 between min and max) OR (4 between min and max) OR (11 between min and max) OR (18 between min and max)
但我想知道是否有更好的方法,例如:
(3,4,11,12) between min and max
这将类似于#1
我需要这个,因为集合可以在不同的搜索之间改变。感谢您提供任何帮助或建议。
更简单上下文中的表是类(classid、classname、minage、maxage)。有数以千计的类(class) - 所以我收到搜索具有特定年龄组的类(class)的网络请求,例如 (3,4,11,12),其中用户正在搜索 3、4、11 和 12 岁的类(class)。
目前我的查询看起来是: select * from class where ((3 between min and max) OR (4 between min and max) OR (11 between min and max) OR (18 between min and max))
最佳答案
有点像
SELECT *
FROM MyTable AS T
WHERE EXISTS (
SELECT *
FROM MySet AS S
WHERE S.val BETWEEN T.my_min AND T.my_max
);
关于mysql - 如何过滤两列之间的一组数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8727875/