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

Mysql Regex til at erstatte 0 fra ipv4

Ved at bruge MySQL-funktionerne INET_ATON() og INET_NTOA() du kan pålideligt konvertere en indgående IPv4-adresse, som har indledende nuller, til den samme streng uden indledende nuller. Ombryd INET_ATON() med INET_NTOA() for at konvertere IP-adressen først til dens heltalværdi og derefter tilbage til en prikket quad.

IP med indledende nuller forskellige steder:

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

Og uden indledende nuller til sammenligning:

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

Bemærk: Dette vil returnere NULL hvis den indtastede IP-adresse ikke var en gyldig adresse. Den returnerer ikke den originale streng eller strimler foranstillede nuller fra en forkert IP-adresse:

Defekt IP-adresse med indledende nuller:

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



  1. Kan jeg få tilbage standardværdier for kolonnenavne i en MySQL-tabel?

  2. Hvordan optimerer man dato-tidssøgning i Mysql?

  3. Indsættelse i MySQL fra PHP (jQuery/AJAX)

  4. Indeksering for nøglesæt-paginering i mysql