在两列之间选择范围

时间:2019-04-05 15:15:11

标签: mysql sql

我需要查询以选择列之间的值,但一列具有相同的值 例如:

12  1
12  2
12  3  ------
12  4
12  5
13  1
13  2
13  3
13  4  ------
13  5

我需要的范围是12 | 3至13 | 4

select * from table1 where
((a >=  '12' and B >= 2) and (a <=  '13' and b <=5)) 

所以13 1丢失了:(我不知道这个查询

3 个答案:

答案 0 :(得分:1)

我认为逻辑是:

where (a > 12 and a < 13) or
      (a = 12 and b >= 3) or
      (a = 13 and b <= 4)

当然,您也可以使用元组更简单地表达这一点:

where (a, b) >= (12, 3) and
      (a, b) <= (13, 4)

答案 1 :(得分:1)

这肯定会起作用:

select * from Table1 where 
(a=12 and b>=3) or(a=13 and b<=4);

检查一下:http://sqlfiddle.com/#!9/7c94ab/6

答案 2 :(得分:0)

我认为可行:

从测试中选择* 其中(a = 12且b> 2)或(a = 13且b <5);