数据库中有一个ipdata表其中有ipstart和ipend和addr三个个字段,我想根据一个IP地址查询这个ip所在的IP段的信息
比喻说一条数据为‘192.1.21.23’,‘192.1.22.0’'上海市'用户的IP地址为‘192.1.21.102’我想根据用户的ip地址查询到用户所在的城市sql语句怎么写......求大神明示sql数据库

解决方案 »

  1.   

    select addr from ipdata where ip like '192.1.22.'%;
    这样就不用分什么ipstart和ipend了。前面相同就能确定是哪个address了
      

  2.   

    我是想要一个IP与一个IP字段的匹配,在数据库中查找这个IP所在的字段详细信息
      

  3.   

    如果是mysql SELECT addr FROM ipdata
      WHERE INET_ATON('192.1.21.102')
    BETWEEN INET_ATON(ipstart)
        AND INET_ATON(ipend)通过INET_ATON函数把ip地址转化为4字节的整形数字处理
    其他数据库看看有没有类似函数,可能要自己写一个
      

  4.   

    oracle的inet_aton, inet_ntoa 可以参考
    http://www.cnblogs.com/wait4friend/archive/2012/09/03/2668834.html
    建议写成函数