sql >> Database >  >> RDS >> Mysql

Mysql Regex om 0 te vervangen van ipv4

Door gebruik te maken van de MySQL-functies INET_ATON() en INET_NTOA() u kunt een binnenkomend IPv4-adres met voorloopnullen op betrouwbare wijze converteren naar dezelfde string zonder voorloopnullen. Wikkel INET_ATON() met INET_NTOA() om het IP-adres eerst om te zetten naar de gehele waarde en dan terug naar een gestippelde quad.

IP met voorloopnullen op verschillende plaatsen:

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

En zonder voorloopnullen ter vergelijking:

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

Opmerking: Dit retourneert NULL als het ingevoerde IP-adres geen geldig adres was. Het retourneert niet de originele string of strip voorloopnullen van een slecht IP-adres:

Defect IP-adres met voorloopnullen:

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



  1. Datum weergeven uit database PHP

  2. Lege tekenreeks die een nul invoegt, geen null

  3. Hoe te repareren Bericht:SQLSTATE [08004] [1040] Te veel verbindingen

  4. Gemiddelde rijlengte hoger dan mogelijk