问题是这样的:现在数据库中已经有如下字段和数据:
序号 地区    IP地址开始段  IP地址结束段
1     生活一区  10.0.0.1    10.0.0.255
2   生活二区  10.0.1.0    10.0.1.255现在要根据用户登录的ip地址来判断其所在地区。
请问sql怎么写?

解决方案 »

  1.   

    设某一用户ip是10.0.0.55
    截取左边三段为ip=10.0.0sql="select 生活一区 from ipdata where IP地址结束段 like "+ip+"%"
      

  2.   

    sql="select 地区 from ipdata where IP地址结束段 like "+ip+"%"上面那个拷错了,这个才好。
      

  3.   

    谢谢你。楼上。
    但是这样也有一定的局限性。
    如果数据是这样的:序号 地区    IP地址开始段  IP地址结束段
    1     生活一区  10.0.0.1    10.0.0.15
    2   生活二区  10.0.0.16    10.0.1.255这个sql又要怎么写呢?
      

  4.   

    哦,数据没表达出我的意思。
    我说假设数据是这样的:
    序号 地区    IP地址开始段  IP地址结束段
    1     生活一区  10.0.0.1    10.0.0.15
    2   生活二区  10.0.0.16    10.0.0.88如果是这样应该如何写呢?
      

  5.   

    sql = "SELECT 地区 FROM opdata WHERE " + ip + " BETWEEN IP地址开始段 AND IP地址结束段";
      

  6.   

    最好不要保存IP字符串
    保存的时候转换成数字来保存。
    转化的方式以10.2.3.4为例 256^3*10+256^2*2+256^1*3+256^*4这样比较就简单了,搜索速度也快的多了。===============================
        CSDN小助手 是一款脱离浏览器也可以使用csdn论坛的
    软件!
        界面: http://qqwwee.com/
        下载: http://qqwwee.com/csdn.rar 包含源代码