sql >> Base de Datos >  >> RDS >> Mysql

Mysql Regex para reemplazar 0 de ipv4

Al utilizar las funciones MySQL INET_ATON() y INET_NTOA() puede convertir de forma fiable una dirección IPv4 entrante que tenga ceros a la izquierda en la misma cadena sin ceros a la izquierda. Envolver INET_ATON() con INET_NTOA() para convertir la dirección IP primero a su valor entero y luego nuevamente a un cuádruple con puntos.

IP con ceros a la izquierda en varios lugares:

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

Y sin ceros a la izquierda para comparar:

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

Nota: Esto devolverá NULL si la dirección IP de entrada no era una dirección válida. No devolverá la cadena original ni eliminará los ceros iniciales de una dirección IP incorrecta:

Dirección IP defectuosa con ceros a la izquierda:

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