亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL如何實現oracle函數INSTR的功能

發布時間:2020-05-29 14:32:29 來源:網絡 閱讀:368 作者:三月 欄目:關系型數據庫

下文我給大家簡單講講關于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.00
SQL> select instr('This is belong to you, but not to me.','to',1,2) as pos from dual;
                 POS                              
--------------------                              
                  32                              
已用時間:  00: 00: 00.00
SQL> select instr('This is belong to you, but not to me.','belong',-1,1) as pos from dual;
                 POS                              
--------------------                              
                   9                              
已用時間:  00: 00: 00.00
SQL> 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) UNSIGNED
BEGIN
      -- 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的功能這篇文章怎么樣,是否有所收獲。如果想要了解更多相關,可以繼續關注我們的行業資訊板塊。 

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

信宜市| 喜德县| 万山特区| 共和县| 永顺县| 民权县| 栾城县| 兰考县| 乳源| 惠东县| 苗栗市| 海兴县| 丹江口市| 蓬安县| 三穗县| 加查县| 定安县| 长海县| 房山区| 行唐县| 绥阳县| 宁德市| 灌云县| 琼结县| 会昌县| 关岭| 镇巴县| 佛冈县| 马边| 南乐县| 阿克苏市| 新安县| 高清| 盱眙县| 东乡族自治县| 中阳县| 龙口市| 庆城县| 宁城县| 辽中县| 鄱阳县|