在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及以上版本。
上一篇CSS真假蜂蜜面膜使用
下一篇CSS真假鑒定軟件靠譜