TABLE A
ID IPADDRESS COL2 ....
1 10.0.0.22
2 192.168.0.22
3 222.222.222.22TABLE B
ID STARTE ENDE TYPE
1 10.0.0.1 10.1.0.1 p
2 222.222.222.1 222.222.223.1 o
1 192.168.0.1 192.168.10.1 p表A如何根据表B中规定的地址(用STARTE和ENDE表示某一段IP地址)类型(TYPE)确定自己的IPADDRESS是属于哪个类型,并在此基础上实现其他功能呢?表B可能会定义同一种类型的多个地址段,同时也可能出现多种类型(超过两种TYPE的情况).
就是
IF(A.IPADDRESS属于P类型){do something here}
if(A.IPADDRESS属于O类型)){do something here}
if(A.IPADDRESS属于Other类型)){do something here}谢谢支持及帮助!
ID IPADDRESS COL2 ....
1 10.0.0.22
2 192.168.0.22
3 222.222.222.22TABLE B
ID STARTE ENDE TYPE
1 10.0.0.1 10.1.0.1 p
2 222.222.222.1 222.222.223.1 o
1 192.168.0.1 192.168.10.1 p表A如何根据表B中规定的地址(用STARTE和ENDE表示某一段IP地址)类型(TYPE)确定自己的IPADDRESS是属于哪个类型,并在此基础上实现其他功能呢?表B可能会定义同一种类型的多个地址段,同时也可能出现多种类型(超过两种TYPE的情况).
就是
IF(A.IPADDRESS属于P类型){do something here}
if(A.IPADDRESS属于O类型)){do something here}
if(A.IPADDRESS属于Other类型)){do something here}谢谢支持及帮助!
...
elseif then
...
else
...
end if;
inet_aton:将ip地址转换成数字型 inet_ntoa:将数字型转换成ip地址
这样做是不是影响效率呢? 如果存储成INT型,那插入和输出的时候是不是也要用到上面两个函数实现呢?2.我知道用IF语句,我就想SQL查询不象是一般程序语言,SQL查询出来是一组数据,如何去写判断条件呢,比如:
判断一个A.ADDRESS落在哪个IP地址段(STARTE--ENDE),然后在获取相应的类型.或者先选择所有P类型的记录,然后逐条与A.ADDRESS做比较
就是上面所说的不知道该怎么描述.我设想是用两个游标,一个指向A表中的记录,一个指向B表中的记录,然后做比较?但游标的执行效率好象不高哦!
有没有好的办法呢?请达人指教!