给出多个区间,sql怎么判断字段值是否满足参数列表的其中之一?

如题
A表

img

select * from A where item满足区间1 or item满足区间2 or ……
比如:
                  传入的sql参数为 List = [
                                                  {
                                                    min:0,
                                                    max:10
                                                   },
                                                  {
                                                    min:90,
                                                    max:120
                                                   },
                                              ]
则A.item=20和A.item=100的数据都应该被取出来

请问该怎么写?

区间用between关键字
where item between 0 and 10 or item between 90 and 120

or 或者union

如果时A.item=20和A.item=100 这样固定的值 的sql 语句

SELECT * FROM A WHERE A.item=20 OR A.item=100

如果要查询范围 的sql 语句

SELECT * FROM A WHERE A.item between 20  and 100

或者

SELECT * FROM A WHERE A.item>20  and A.item<100

最简单通用的方法还是动态拼接条件。
当然,直接把这个参数传给数据库,让数据库去判断也是可以的,不过要写个返回类型为布尔型的函数,这个函数传入字段值和你的参数列表,在函数里去判断对应的字段值是否符合你列表中的任意一个区间,有符合的返回真,没有符合的返回假

select * fromwhere 函数名称(字段,参数列表)