例如:192.168.1.4
第一步:转为十六进制 C0.A8.01.04
第二步:去掉".", C0A80104
第三步:转为十进制   3232235780
现在表中有一个IP是这样的格式192.168.1.4,怎样 转为第三步那样的格式呢求教。。最好一句sql能搞定..

解决方案 »

  1.   

    mysql> select  CONV(replace('C0.A8.01.04','.',''),16,10);
    +-------------------------------------------+
    | CONV(replace('C0.A8.01.04','.',''),16,10) |
    +-------------------------------------------+
    | 3232235780                                |
    +-------------------------------------------+
    1 row in set (0.01 sec)mysql>
      

  2.   

    哈哈,楼主要喷血了。
    mysql> SELECT INET_ATON('192.168.1.4');
    +--------------------------+
    | INET_ATON('192.168.1.4') |
    +--------------------------+
    |               3232235780 |
    +--------------------------+
    1 row in set (0.00 sec)
      

  3.   

    果然这个函数给力
    >select INET_ATON('192.168.1.4');
    +--------------------------+
    | INET_ATON('192.168.1.4') |
    +--------------------------+
    |               3232235780 |
    +--------------------------+
    1 row in set (0.00 sec)
      

  4.   

    ok 我提个问题 上面这个整数值如何转回ip?
      

  5.   

    INET_ATON  反过来就行了。
    mysql> SELECT INET_NTOA(3520061480);
            -> '209.207.224.40'