在MySQL中,經(jīng)常需要對(duì)字符串進(jìn)行切割操作。這里介紹一種使用FOR循環(huán)來切割字符串的方法。
DELIMITER $$
CREATE FUNCTION `split_str`( str VARCHAR(1000), sep VARCHAR(10), pos INT )
RETURNS VARCHAR(1000)
DETERMINISTIC
BEGIN
DECLARE x INT;
DECLARE new_str VARCHAR(1000);
SET x = 0;
SET new_str = '';
WHILE x < pos DO
SET new_str = SUBSTRING_INDEX(str, sep, 1);
SET str = SUBSTRING(str FROM LENGTH(new_str) + 2);
SET x = x + 1;
END WHILE;
RETURN new_str;
END$$
DELIMITER ;
以上是一個(gè)自定義函數(shù)split_str,接收三個(gè)參數(shù):被切割的字符串、分隔符和截取位置。該函數(shù)采用了FOR循環(huán),將字符串切割成多個(gè)子字符串。
使用該函數(shù)的示例:
SELECT split_str('apple,banana,orange', ',', 2); -- 輸出banana
在該示例中,被切割的字符串為“apple,banana,orange”,以“,”為分隔符,選擇第二個(gè)位置(即“banana”)進(jìn)行截取,最終輸出“banana”。