Mysql
 sql >> Base de données >  >> RDS >> Mysql

Mysql Regex pour remplacer 0 d'ipv4

En utilisant les fonctions MySQL INET_ATON() et INET_NTOA() vous pouvez convertir de manière fiable une adresse IPv4 entrante qui a des zéros en tête dans la même chaîne sans zéros en tête. Envelopper INET_ATON() avec INET_NTOA() pour convertir d'abord l'adresse IP en sa valeur entière, puis de nouveau en quadrilatère pointé.

IP avec des zéros non significatifs à divers endroits :

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

Et sans les zéros non significatifs pour la comparaison :

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

Remarque : Cela renverra NULL si l'adresse IP d'entrée n'était pas une adresse valide. Il ne renverra pas la chaîne d'origine ni ne supprimera les zéros non significatifs d'une mauvaise adresse IP :

Adresse IP erronée avec des zéros non significatifs :

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