標籤:
由於工作需要需要處理一些以逗號分隔的字串,每次都要現做很是麻煩,網上找了很多都沒有現成的,好吧,自己動手寫一個好了
1 CREATE DEFINER = `harri`@`%` FUNCTION `substr_for_str`(`num` int, `str` varchar(5000)) 2 RETURNS varchar(100) 3 BEGIN 4 /*函數功能: 把帶逗號的字串分割取出 5 參數: num 要取出的字串的索引值, 以0開始 6 str 以逗號分割的字串 7 擴充: 將逗號替換成其他符合,即可完成不同分隔字元拆分字串,亦可以把分隔字元作為參數 8 */ 9 SET @substr_for_str = #Routine body goes here...10 11 SUBSTRING(12 SUBSTRING_INDEX(str, ‘,‘, num + 1),13 CASE num14 WHEN 0 THEN15 CHAR_LENGTH(16 SUBSTRING_INDEX(str, ‘,‘, num)17 ) + 118 ELSE19 CHAR_LENGTH(20 SUBSTRING_INDEX(str, ‘,‘, num)21 ) + 222 END,23 CASE num24 WHEN 0 THEN25 CHAR_LENGTH(26 SUBSTRING_INDEX(str, ‘,‘, num + 1)27 ) - CHAR_LENGTH(28 SUBSTRING_INDEX(str, ‘,‘, num)29 )30 ELSE31 CHAR_LENGTH(32 SUBSTRING_INDEX(str, ‘,‘, num + 1)33 ) - CHAR_LENGTH(34 SUBSTRING_INDEX(str, ‘,‘, num)35 ) - 136 END37 );38 39 40 RETURN @substr_for_str;41 END;
測試:
mysql> SELECT str_for_substr(3,‘one,two,three,four,five,six,seven‘) as ‘value‘;
+-------+
| value |
+-------+
| four |
+-------+
1 row in set
mysql字串分割函數