概述
1、用mysql内置函数转换ip地址和数字
利用两个内置函数
1.1, inet_aton:将ip地址转换成数字型
使用方法举例 : select inet_aton('ip地址');
select inet_aton('192.168.15.12');
得到的结果:
1.2, inet_ntoa:将数字型转换成ip地址
使用方法举例 : select inet_ntoa(数字);
select inet_ntoa(3232239372);
得到的结果:
不知道大家有没有仔细观察我上面列举的例子, 大家仔细看
小编使用箭头的方式给大家标准得很清楚了, 刚开始我需要转换成数字的ip地址为'192.168.15.12' , 转换后得到的数字结果是3232239372, 然后紧接着小编拿数字3232239372去解析成ip地址, 得到的结果正好是我们刚开始需要转换的ip地址'192.168.15.12', 也就是说这个过程是可逆的, 我们可以简单理解为 加密解密这个过程, 便于理解.
并且这个内置函数还有一个特别厉害的地方:
看到了吗, 它能规定限制了我们ip地址的一个最大范围, 日常中我们最大的ip地址确实为 255.255.255.255; 上面也看到了转换比255.255.255.255大的数值就会转换失败! 我转换最大的ip地址就没什么问题, 运行截图在下面; 可以说这个内置函数很好用了, 哈哈
好了, 接下来我们继续看第二种方式
2、充分利用mysql内置的format函数
尤其是在处理字符格式的时候,例如将12345转换成12,345这样的,只要用:format(12345,0)即可,如果用format(12345,2)则显示的是12,345.00了...
这个点很细, 可能大部分在平时日常工作中没怎么注意, 遇到存储ip地址这样的情形, 第一反应想到的就是使用字符串, 图方便快捷, 但是我们要知道ip地址如果单纯的使用字符串这样的数据类型来存储是要耗费较多的内存空间的, 大家可以根据小编的案例来, 建议大家使用小编列举的第一种方式来存储和读取, 既节省了内存空间, 又能提高我们在查询过程中的一个效率, 因为第一种方式使用的是整型存储, 整型比字符串操作代价更低 , 因为字符集校对规则是字符比校对整型更加复杂; 字符串的检查规则要比整型严格得多 ; 说了存储ip地址来使用mysql内置函数转换的有点, 小编也来说一说它一些不足的地方;因为转换后存储都是数字值嘛; 所以很容易想到就是: 可得性是没有直接存储ip地址字符串来得更加直观, 可得性不是特别优秀,但是在数据库存储空间上是节省的 , 小编最后说一点 ,如果说你们公司项目业务设计到的表表较多, 使用到ip地址也多, 那么就建议使用mysql自带的这个内置函数将ip地址转换成数值后使用整型来加以存储;
最近小编的更多技术优质文章,和java大数据精品学习资源已不再csdn上同步更新了, 查看更多优质技术文章和精品干货, 还请大家移步到小编个人微信公众号查看, 感谢你们一路的支持, 感谢感谢, 拿出手机扫描下方二维码关注查看更多精彩文章吧, 我们一起精进、这里总会有你想要学的java知识, 扫描关注吧!
最后
以上就是舒服铅笔为你收集整理的mysql 内置提供的 ip转换函数 , 存储ip地址别再傻傻的使用varchar等字符串了的全部内容,希望文章能够帮你解决mysql 内置提供的 ip转换函数 , 存储ip地址别再傻傻的使用varchar等字符串了所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复