Dùng INT UNSIGNED. Khi INSERT dùng INET_ATON(), khi SELECT dùng INET_NTOA(). IP ở định dạng dotted (ví dụ: 120.0.0.1).
Tạo bảng
mysql> CREATE TABLE IPV4AddressDemo (
-> `IPV4Address` INT UNSIGNED
-> );
Query OK, 0 rows affected (0.52 sec)
Chèn IP với INET_ATON
mysql> INSERT INTO IPV4AddressDemo VALUES(INET_ATON("120.0.0.1"));
Query OK, 1 row affected (0.17 sec)
Hiển thị (dạng số nguyên)
mysql> SELECT * FROM IPV4AddressDemo;
+-------------+ | IPV4Address | +-------------+ | 2013265921 | +-------------+ 1 row in set (0.00 sec)
Chuyển về định dạng IP với INET_NTOA
mysql> SELECT INET_NTOA(`IPV4Address`) FROM IPV4AddressDemo;
+--------------------------+ | INET_NTOA(`IPV4Address`) | +--------------------------+ | 120.0.0.1 | +--------------------------+ 1 row in set (0.00 sec)
Lưu ý: Chỉ áp dụng cho IPv4. IPv6 cần VARBINARY(16) và INET6_ATON/INET6_NTOA.