我打算使用varchar(20),但是我想知道如果我应该做INT并剥离句点怎么办。哪个会更好,为什么呢?
varchar(20)
我想您只对IPv4地址感兴趣,而对IPv6不感兴趣。
我会INT UNSIGNED在列中使用,然后使用INET_ATON和INET_NTOA在文本表示形式和int值之间来回转换。
INT UNSIGNED
INET_ATON
INET_NTOA
mysql> SELECT INET_ATON('192.168.10.50'); +----------------------------+ | INET_ATON('192.168.10.50') | +----------------------------+ | 3232238130 | +----------------------------+ 1 row in set (0.00 sec) mysql> SELECT INET_NTOA(3232238130); +-----------------------+ | INET_NTOA(3232238130) | +-----------------------+ | 192.168.10.50 | +-----------------------+ 1 row in set (0.00 sec)