mysql - 如何使用 MySQL 中的函数将 a.b.c.d IP 记录转换为 IP 值?

标签 mysql sql string

这是我的 table ......

user (
  id        int unsigned  primary key
  ip        varchar(15)   not null
  ip_value  int unsigned  default null
)

一些示例数据

id    ip            ip_value
123   5.68.23.10    NULL
592   31.52.11.49   NULL

我需要使用函数更新用户表中的所有记录。

如果一个 IP 由 A.B.C.D 部分组成,ip_value 可以这样计算:

(A * 256 * 256 * 256) + (B * 256 * 256) + (C * 256) + D

之后,表格应该是这样的

id    ip            ip_value
123   5.68.23.10    88348426
592   31.52.11.49   523504433

如何使用 MySQL 查询来完成此操作?

最佳答案

你可以使用 INET_ATON 函数来完成

SELECT id, ip, INET_ATON(ip) AS ip_value from your_table;

更多信息:http://dev.mysql.com/doc/refman/5.0/en/miscellaneous-functions.html#function_inet-aton

关于mysql - 如何使用 MySQL 中的函数将 a.b.c.d IP 记录转换为 IP 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4412651/

相关文章:

php - 在 php 中单击提交时如何验证答案并显示答案

mysql - 通过核对贷款停止日期和员 worker 数来更新贷款簿

c - strcmp 在使用 fgets 读取的行上

python - 这个字符串匹配方法在python中有实现吗?

mysql - CONCAT 字符串到 longblog 和 mysql 磁盘使用

mysql - 在其他服务器上恢复mysqldump不会恢复密码

php - 将同一张表上的多个 MySQL 查询合并为一个

mysql - 用户输入和数据库包含 '%' 并使用 LIKE '%xx%' 在数据库中搜索输入

mysql - 比较同一列和同一表中的相应行

两个字符串中不重复的相似字符的计数