mysql 按照范围选择_mysql – 如何选择BETWEEN列的范围列

我正在使用JPA和JPQL查询从 MySQL数据库中检索数据.但我的问题比语言特定(我认为)更合乎逻辑……

我想选择一个表的所有条目,其中一列是在BETWEEN中的范围列表.

例如:

SELECT x FROM myTable

WHERE x BETWEEN 2 AND 5

OR x BETWEEN 7 AND 9

范围(2-5,7-9)来自另一个表格:

RANGES ex: id | from | to

–––––––––– –––––––––––––––

id: INT 1| 2| 5

from: INT 2| 7| 9

to: INT 3| 9| 15

4| 17| null

我的问题a)

是,Ranges列表是动态的,可能只是一个范围,如

x BETWEEN 2和5

或多个范围

x BETWEEN 2和5 OR x在7和9之间或者x之间…

我的问题b)

是的,Ranges也可以像开放一样开放

x> = 17

我的问题c)

是,还有其他WHERE条件,限制结果.其中一些WHERE条件比BETWEEN条件更“限制”.所以他们先来,让整个查询更快.比方说吧

…在哪里x%2 = 0并且x在2和5之间

对于c)我考虑过子查询,例如:

SELECT x FROM myTable

WHERE x IN (

SELECT x FROM myTable

WHERE x BETWEEN 2 AND 5

OR x BETWEEN 7 AND 9

)

AND y .. something something

“好”的是,我使用Java和JPA来创建我的查询,因此我可以动态创建查询.但在滥用字符串连接以动态创建SQL查询之前,我希望在纯SQL中找到更清晰的解决方案(甚至在JPQL中更好)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值