sql >> Databasteknik >  >> RDS >> Mysql

Mysql Regex för att ersätta 0 från ipv4

Genom att använda MySQL-funktionerna INET_ATON() och INET_NTOA() du kan på ett tillförlitligt sätt konvertera en inkommande IPv4-adress som har inledande nollor till samma sträng utan inledande nollor. Radera INET_ATON() med INET_NTOA() för att konvertera IP-adressen först till dess heltalsvärde och sedan tillbaka till en prickad quad.

IP med inledande nollor på olika ställen:

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

Och utan inledande nollor för jämförelse:

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

Obs! Detta returnerar NULL om den inmatade IP-adressen inte var en giltig adress. Den kommer inte att returnera den ursprungliga strängen eller remsa inledande nollor från en felaktig IP-adress:

Felaktig IP-adress med inledande nollor:

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



  1. JS Kan inte fråga MySQL-databasen. FEL:connection.query är inte en funktion

  2. När jag ansluter till fjärrkontrollen min SQL visar jag åtkomst nekad för användare [email protected] ( Använder lösenord :Ja )

  3. Rank funktion i MySQL

  4. postgres db-filer - vilken fil representerar den specifika tabellen/indexet?