MySQL如何实现oracle函数INSTR的功能
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,下文我给大家简单讲讲关于MySQL如何实现oracle函数INSTR的功能,大家之前了解过相关类似主题内容吗?感兴趣的话就一起来看看这篇文章吧,相信看完MySQL如何实现oracle函数INSTR的功
千家信息网最后更新 2026年11月01日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.00MySQL里效果如下,
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安全错误
数据库的锁怎样保障安全
上海挚品互联网科技有限公司
西安纸贵互联网科技有限公司
科技创新与互联网经济
科技互联网技术
关于新基建和互联网科技
深圳科技互联网
互联网科技公司官网
南京欣网互联网科技
百单互联网科技有限公司
润盈互联网科技
互联网前沿科技
互联网科技有限公司 翻译
老年人脱离互联网科技的作文
互联网教育科技公司vipkid
央行互联网金融科技公司
来此购互联网科技有限公司
搜狐科技互联网
民营互联网公司国防科技
广州三三互联网科技有限公司
互联网对科技影响
精品咖啡豆
互联网科技工作委员会主任
互联网巨头反垄断金融科技
奇酷互联网科技公司
浩特互联网科技
四川狮子座互联网科技
科技类的互联网平台
福州新华互联网科技学校 知乎
广州新华互联网科技学校电竞方面
互联网科技融合创新