sql >> Databáze >  >> RDS >> Mysql

Mysql Regex nahradí 0 z ipv4

Využitím funkcí MySQL INET_ATON() a INET_NTOA() můžete spolehlivě převést příchozí IPv4 adresu, která má úvodní nuly, na stejný řetězec bez úvodních nul. Zabalte INET_ATON() pomocí INET_NTOA() převést IP adresu nejprve na její celočíselnou hodnotu a poté zpět na tečkovanou čtveřici.

IP s úvodními nulami na různých místech:

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

A bez úvodních nul pro srovnání:

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

Poznámka: To vrátí NULL pokud vstupní IP adresa nebyla platná adresa. Nevrací původní řetězec ani neodstraňuje úvodní nuly ze špatné IP adresy:

Vadná IP adresa s úvodními nulami:

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



  1. V mysql nelze použít název sloupce desc

  2. Nahraďte znaky unicode v PostgreSQL

  3. Oracle Cloud Breakdown – náklady na hostování databáze na OCI

  4. Postgres Query Plan, proč je odhad řádku tak špatný