我有一个表,有2列,可乐和colb,代表一个数字范围。多列的范围
例问题:
cola - colb
1 - 10
11 - 22
33 - 66
67 - 67
- 如果输入是7-8,我想的查询,将提取范围1-10。
- 如果输入的是67 - 80,我想一个查询,将提取67 - 67
例子查询:
SELECT *
FROM example
WHERE vala >= cola
AND valb <= colb
第一个标准与上述查询的伟大工程,但它下降下来的时候可乐= COLB即.. 67 - 67
以上是我的问题的一个简单的例子。该问题实际上由IPS的范围。 Cola - Colb2 = IP范围。在上面的例子中,我已经包含了一些情况。
SELECT *
FROM `static_allocation`
WHERE INET_ATON('$network_addr') >= INET_ATON(network_addr)
AND INET_ATON('$broadcast_addr') <= INET_ATON(broadcast_addr)
LIMIT 1
编辑:
OK,看来我是稍有不妥..
表数据
10.0.0.0 - 10.0.0.15
10.0.0.16 - 10.0.0.16
然而,当我尝试和选择10.0.0.16 - 10.0.0.20
,这不是” t找到记录..
这是没有意义的我。 – 2012-01-29 19:50:36
是不是因为valb是80并且不小于或等于67? – TigOldBitties 2012-01-29 19:53:11
我认为这个问题是关于IP范围的。 192.1.1.5的网络地址是192.1.1.0,它的广播地址是192.1.1.255 @TigOldBitties:错过了80有 – Andomar 2012-01-29 19:53:48