我想将varchar(32)列中相同的“干净”IP号复制为整数。
我试过了:
Path
但是对于某些值,我得到的数字与原来的“干净”不同。
我确实做错了什么,但无法弄清楚它是什么。
示例现在如何运作:
Message.GetAll()
我希望输出为:
UPDATE table SET ipnum = REPLACE(ip, '.', '');
答案 0 :(得分:4)
您可能应该使用内置功能:
mysql> select INET_ATON('10.0.0.1');
+-----------------------+
| INET_ATON('10.0.0.1') |
+-----------------------+
| 167772161 |
+-----------------------+
1 row in set (0.00 sec)
给出IPv4网络地址的虚线四边形表示 string,返回一个表示数字值的整数 网络字节顺序的地址(大端)。 INET_ATON()返回NULL 如果它不理解它的论点。
您可以使用INET_NTOA
撤消此过程,例如:
mysql> select INET_NTOA('167772161');
+------------------------+
| INET_NTOA('167772161') |
+------------------------+
| 10.0.0.1 |
+------------------------+
1 row in set (0.00 sec)