我想知道如何将INET6_ATON结果保存到MYSQL。所以我读过MYSQL-Help的文章,它说,我应该使用VARBINARY(16)。但是现在,有了一个IPv4-Address,它就有了内容0x7F000001,而我无法使用0x7F000001获得结果。我的想法是使用CHAR,但在这种情况下,我不知道INET6_ATON-result的最大长度是多少。
所以:如何获得MYSQL-如果结果保存为VARBINARY?还是其他,:INET6_ATON-result的最大长度是多少?
我正在使用以下SQL-语句转换IP地址:
SELECT HEX(INET6_ATON("FE80:0000:0000:0000:0202:B3FF:FE1E:8329"))非常感谢。
发布于 2016-07-10 17:21:12
请注意,下面的人类可读的列是供人使用的。
inet6列将包含超出范围的数字,我应该说,这对人类来说很有意义。如果你愿意的话。
create table myFriends
( id int auto_increment primary key,
friendlyName varchar(100) not null,
inet6 binary(16) not null,
humanReadable char(32) not null
);
insert myFriends (friendlyName,inet6,humanReadable) values
('Kathy Higgins',INET6_ATON("FE80:0000:0000:0000:0202:B3FF:FE1E:8329"),HEX(INET6_ATON("FE80:0000:0000:0000:0202:B3FF:FE1E:8329")));
select * from myFriends;
+----+---------------+------------------+----------------------------------+
| id | friendlyName | inet6 | humanReadable |
+----+---------------+------------------+----------------------------------+
| 1 | Kathy Higgins | ■Ç ☻☻│ ■▲â) | FE800000000000000202B3FFFE1E8329 |
+----+---------------+------------------+----------------------------------+FE80代表两个字节。FE 80十六进制。每个字节从00到FF (255)不等。
看看我的答案Here在不同的格式。经常在一个表中使用几乎重复的信息。
https://stackoverflow.com/questions/38293193
复制相似问题