mysql/oracle ip地址比较
2023-09-27 14:24:18 时间
SELECT hub_gid FROM CPP_HUB_IPSEGMENT WHERE IpToLong(#{ip}) BETWEEN IpToLong(ip_begin) AND IpToLong(ip_end)
oracle实现方式:创建oracle函数
-- 把ip转换成long型
CREATE OR REPLACE FUNCTION IpToLong(ip2 in varchar2)
return number
is
p1 number;
p2 number;
p3 number;
ip varchar2(32);
begin
p1 := instr(ip2, ':', 1, 1);
if(p1 > 0) then
ip := substr(ip2, 1, p1 -1);
else
ip := ip2;
end if;
p1 := instr(ip, '.', 1, 1);
p2 := instr(ip, '.', 1, 2);
p3 := instr(ip, '.', 1, 3);
return to_number(substr(ip, 1, p1-1))*256*256*256 + to_number(substr(ip, p1+1, p2-p1-1))*256*256 + to_number(substr(ip, p2+1, p3-p2-1))*256 + to_number(substr(ip, p3+1));
end;
/
-- 把long型的ip转换成ip格式
CREATE OR REPLACE FUNCTION LongToIp(ip in number)
return varchar2
is
begin
return floor(ip/65536/256) || '.' || mod(floor(ip/65536), 256) || '.' || mod(floor(ip/256), 256) || '.' || mod(ip, 256);
end;
/
2、mysql实现方法:
如果需要找出在某个网段的用户(例如:172.16.11.1 ~ 172.16.11.100),可以利用php的ip2long方法,把ip地址转为整型,再进行比较。
相关文章
- 下载mysql server安装包的时候,不登录oracle账号,实现下载
- RDBMS SQL 创建工具 | MySQL、Oracle、MariaDB、SQLsever、SQLite、PostgreSQL
- RDBMS SQL 编辑器 | MySQL、Oracle、MariaDB、SQLsever、SQLite、PostgreSQL
- 从Oracle迁移到Mysql之前必须知道的50件事
- Mysql mysql lost connection to server during query 问题解决方法
- 【docker】dbclient远程访问非本机数据库(mysql,oracle,postgres,sqlserver/mssql),测试远程数据库连通性
- Linux centos7x64系统下安装mysql(在线/离线)
- 《PHP和MySQL Web开发从新手到高手(第5版)》一一1.7 万事俱备,摩拳擦掌
- 《SQL初学者指南》——1.3 Microsoft SQL Server、Oracle和MySQL
- Oracle不足与MySQL优势
- mysql中实现oracle中的rowid功能
- Oracle与MySQL的区别
- 转 MySQL与Oracle 差异比较之一数据类型
- 转 mysql 文件系统空间满了
- 转 MYSQL_GTID详解
- 转 phpmyadmin操作技巧:如何在phpmyadmin里面复制mysql数据库?
- MySQL 查询语句(不定时更新)
- mysql 行转列
- Sqoop是一款开源的工具,主要用于在HADOOP(Hive)与传统的数据库(mysql、oracle...)间进行数据的传递
- 从Oracle转到Mysql前需了解的50件事
- 非常简单的oracle和mysql数据互传
- MYSQL时间显示(与ORACLE的区别)
- 数据库高可用架构(MySQL、Oracle、MongoDB、Redis)
- MySQL协议-认证握手过程
- mysql数据库表设计小数类型