Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Mysql Regex để thay thế 0 từ ipv4

Bằng cách sử dụng các hàm của MySQL INET_ATON()INET_NTOA() bạn có thể chuyển đổi một cách đáng tin cậy địa chỉ IPv4 đến có các số không ở đầu thành cùng một chuỗi mà không có số 0 ở đầu. Wrap INET_ATON() với INET_NTOA() để chuyển đổi địa chỉ IP đầu tiên thành giá trị số nguyên của nó, sau đó quay lại một phần tư có dấu chấm.

IP có các số 0 ở đầu ở các vị trí khác nhau:

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

Và không có số 0 ở đầu để so sánh:

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

Lưu ý: Điều này sẽ trả về NULL nếu địa chỉ IP đầu vào không phải là địa chỉ hợp lệ. Nó sẽ không trả về chuỗi ban đầu hoặc dải số 0 ở đầu từ một địa chỉ IP không hợp lệ:

Địa chỉ IP bị lỗi với các số 0 ở đầu:

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tại sao truy vấn không bị lỗi với cột không tồn tại trong truy vấn con?

  2. Chèn mysql nếu không tồn tại mà không có khóa duy nhất

  3. Làm thế nào để chọn các hàng theo khoảng thời gian trong mysql?

  4. Cách tốt để đóng gói truy cập dữ liệu với PHP / MySQL là gì?

  5. Định dạng ngày trong MySQL - khó chèn ngày