Mysql
 sql >> Database >  >> RDS >> Mysql

Mysql Regex per sostituire 0 da ipv4

Utilizzando le funzioni MySQL INET_ATON() e INET_NTOA() puoi convertire in modo affidabile un indirizzo IPv4 in entrata con zeri iniziali nella stessa stringa senza zeri iniziali. Avvolgi INET_ATON() con INET_NTOA() per convertire l'indirizzo IP prima nel suo valore intero, quindi di nuovo in un quad con punti.

IP con zeri iniziali in vari punti:

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

E senza zeri iniziali per il confronto:

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

Nota: Questo restituirà NULL se l'indirizzo IP di input non era un indirizzo valido. Non restituirà la stringa originale o rimuoverà gli zeri iniziali da un indirizzo IP errato:

Indirizzo IP errato con zeri iniziali:

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