Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Mysql Regex para substituir 0 do ipv4


Utilizando as funções do MySQL INET_ATON() e INET_NTOA() você pode converter de forma confiável um endereço IPv4 de entrada que tenha zeros à esquerda na mesma string sem zeros à esquerda. Agrupar INET_ATON() com INET_NTOA() para converter o endereço IP primeiro em seu valor inteiro e, em seguida, de volta para um quadrado pontilhado.

IP com zeros à esquerda em vários lugares:

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

E sem zeros à esquerda para comparação:

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

Observação: Isso retornará NULL se o endereço IP de entrada não for um endereço válido. Ele não retornará a string original ou removerá zeros à esquerda de um endereço IP incorreto:

Endereço IP defeituoso com zeros à esquerda:

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