色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

mysql實現patindex

劉柏宏2年前10瀏覽0評論

在MySQL中實現類似于SQL Server中的PATINDEX函數,可以使用正則表達式來實現。

DELIMITER $$
CREATE FUNCTION PATINDEX (pattern VARCHAR(255), str VARCHAR(255)) 
RETURNS INT 
BEGIN 
DECLARE i INT DEFAULT 1; 
DECLARE j INT DEFAULT 1; 
DECLARE length1 INT DEFAULT CHAR_LENGTH(str); 
DECLARE length2 INT DEFAULT CHAR_LENGTH(pattern);
WHILE(i< length1 AND j< length2) DO 
IF substring(str, i, 1) = substring(pattern, j, 1) THEN 
SET i = i + 1; 
SET j = j + 1; 
ELSE 
SET i = i - j + 2; 
SET j = 1; 
END IF; 
END WHILE; 
IF j = length2 + 1 THEN 
RETURN i - length2; 
ELSE 
RETURN 0; 
END IF; 
END $$
DELIMITER ;

以上代碼創建了一個名為PATINDEX的函數,傳入pattern和str兩個參數,函數將返回在str中第一次出現pattern的位置。

使用方法如下:

SELECT PATINDEX('abc', 'abcaaa') AS position;

結果為1,即在字符串'abcaaa'中,'abc'第一次出現的位置為1。

注意,此方法只適用于MySQL 5.7及以上版本。