MySQL如何实现oracle函数INSTR的功能
发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,下文我给大家简单讲讲关于MySQL如何实现oracle函数INSTR的功能,大家之前了解过相关类似主题内容吗?感兴趣的话就一起来看看这篇文章吧,相信看完MySQL如何实现oracle函数INSTR的功
千家信息网最后更新 2025年01月21日MySQL如何实现oracle函数INSTR的功能
下文我给大家简单讲讲关于MySQL如何实现oracle函数INSTR的功能,大家之前了解过相关类似主题内容吗?感兴趣的话就一起来看看这篇文章吧,相信看完MySQL如何实现oracle函数INSTR的功能对大家多少有点帮助吧。
Oracle 里用了几次如下的调用,
SQL> select instr('This is belong to you, but not to me.','to',1,1) as pos from dual; POS -------------------- 16 已用时间: 00: 00: 00.00SQL> select instr('This is belong to you, but not to me.','to',1,2) as pos from dual; POS -------------------- 32 已用时间: 00: 00: 00.00SQL> select instr('This is belong to you, but not to me.','belong',-1,1) as pos from dual; POS -------------------- 9 已用时间: 00: 00: 00.00SQL> select instr('This is belong to you, but not to me.','belong',-1,2) as pos from dual; POS -------------------- 0 已用时间: 00: 00: 00.00
MySQL里效果如下,
mysql> select func_instr_oracle('This is belong to you, but not to me.','to',1,1) as pos;+------+| pos |+------+| 16 |+------+1 row in set (0.00 sec)mysql> select func_instr_oracle('This is belong to you, but not to me.','to',1,2) as pos;+------+| pos |+------+| 32 |+------+1 row in set (0.00 sec)mysql> select func_instr_oracle('This is belong to you, but not to me.','belong',-1,1) as pos;+------+| pos |+------+| 9 |+------+1 row in set (0.00 sec)mysql> select func_instr_oracle('This is belong to you, but not to me.','belong',-1,2) as pos;+------+| pos |+------+| 0 |+------+1 row in set (0.00 sec)
附上函数func_instr_oracle的代码:
DELIMITER $$USE `oracle12c`$$DROP FUNCTION IF EXISTS `func_instr_oracle`$$CREATE DEFINER=`root`@`localhost` FUNCTION `func_instr_oracle`( f_str VARCHAR(1000), -- Parameter 1 f_substr VARCHAR(100), -- Parameter 2 f_str_pos INT, -- Postion f_count INT UNSIGNED -- Times ) RETURNS INT(10) UNSIGNEDBEGIN -- Created by ytt. Simulating Oracle instr function. -- Date 2015/12/5. DECLARE i INT DEFAULT 0; -- Postion iterator DECLARE j INT DEFAULT 0; -- Times compare. DECLARE v_substr_len INT UNSIGNED DEFAULT 0; -- Length for Parameter 1. DECLARE v_str_len INT UNSIGNED DEFAULT 0; -- Length for Parameter 2. SET v_str_len = LENGTH(f_str); SET v_substr_len = LENGTH(f_substr); -- Unsigned. IF f_str_pos > 0 THEN SET i = f_str_pos; SET j = 0; WHILE i <= v_str_len DO IF INSTR(LEFT(SUBSTR(f_str,i),v_substr_len),f_substr) > 0 THEN SET j = j + 1; IF j = f_count THEN RETURN i; END IF; END IF; SET i = i + 1; END WHILE; -- Signed. ELSEIF f_str_pos <0 THEN SET i = v_str_len + f_str_pos+1; SET j = 0; WHILE i <= v_str_len AND i > 0 DO IF INSTR(RIGHT(SUBSTR(f_str,1,i),v_substr_len),f_substr) > 0 THEN SET j = j + 1; IF j = f_count THEN RETURN i - v_substr_len + 1; END IF; END IF; SET i = i - 1; END WHILE; -- Equal to 0. ELSE RETURN 0; END IF; RETURN 0; END$$DELIMITER ;
大家觉得MySQL如何实现oracle函数INSTR的功能这篇文章怎么样,是否有所收获。如果想要了解更多相关,可以继续关注我们的行业资讯板块。
函数
功能
篇文章
下文
主题
代码
兴趣
内容
效果
更多
板块
行业
资讯
帮助
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
苏州乐志软件开发
网络安全检查维护服务
shp数据库字段中文大全
影之刃3选什么服务器
sql2012数据库如何改密码
天津赞普网络技术有限公司
戴尔t310服务器硬盘诊断
sparc软件开发环境
网络技术差错检验的两种方法
昆明网络技术渲染网络
上网代理服务器
对采用虚拟局域网络技术
库存预警数据库
河北特色软件开发价格比较
关于网络安全的辩论赛资料
和平精英手游官网服务器在哪
武汉临空港网络安全学院华科
堆叠交换机切换访问服务器
sql数据库怎么解决问题
linux 编译服务器
tx服务器
sql2012数据库如何改密码
湖南天地立心网络技术有限公司
电子商务网络技术安全问题
中国服务器市场研究报告
网络安全相关考试资质
数据库表id重复
数据库scanip是什么意思
软件服务器全部代码
软件开发测试男生网名