sql >> データベース >  >> RDS >> Mysql

Mysql正規表現はipv4から0を置き換えます

    MySQL関数を利用することにより INET_ATON() およびINET_NTOA() 先行ゼロのある着信IPv4アドレスを、先行ゼロのない同じ文字列に確実に変換できます。 INET_ATON()をラップします INET_NTOA()を使用 IPアドレスを最初に整数値に変換してから、点線のクワッドに戻します。

    さまざまな場所に先行ゼロがあるIP:

    mysql> SELECT INET_NTOA(INET_ATON('001.110.011.111'));
    +-----------------------------------------+
    | INET_NTOA(INET_ATON('001.110.011.111')) |
    +-----------------------------------------+
    | 1.110.11.111                            |
    +-----------------------------------------+
    

    比較のための先行ゼロなし:

    mysql> SELECT INET_NTOA(INET_ATON('1.110.11.111'));
    +--------------------------------------+
    | INET_NTOA(INET_ATON('1.110.11.111')) |
    +--------------------------------------+
    | 1.110.11.111                         |
    +--------------------------------------+
    

    注: これはNULLを返します 入力IPアドレスが有効なアドレスではなかった場合。元の文字列を返したり、不正なIPアドレスから先行ゼロを削除したりすることはありません:

    先行ゼロのある誤ったIPアドレス:

    mysql> SELECT INET_NTOA(INET_ATON('888.777.123.123'));
    +-----------------------------------------+
    | INET_NTOA(INET_ATON('888.007.123.123')) |
    +-----------------------------------------+
    | NULL                                    |
    +-----------------------------------------+
    



    1. GroupByの最初の行と最後の行

    2. null許容列でのDoctrineDQL結合

    3. MySQL DAYOFWEEK()-私の週は月曜日から始まります

    4. MySQL対SQLServer対Oracle