前言
昨天在摸索mysql的时候,找不到mysql定义数组的方法,于是在网上学习到可以自定义函数来模仿split方法实现。
一、直接看效果。
DROP FUNCTION IF EXISTS split;
#split方法+数组
CREATE FUNCTION split ( regex VARCHAR ( 1024 ), Num INTEGER ) RETURNS VARCHAR ( 64 ) DETERMINISTIC
BEGIN
RETURN SUBSTRING_INDEX( SUBSTRING_INDEX( regex, ',', Num ), ',', -1 );
END;
SELECT split("csdn,Clearlove没有7,一键三连",1);
SELECT split("csdn,Clearlove没有7,一键三连",2);
SELECT split("csdn,Clearlove没有7,一键三连",3);
二、实战演示
1.while循环取数
DROP PROCEDURE IF EXISTS main;
#实战split
CREATE PROCEDURE main () BEGIN
DECLARE i INTEGER DEFAULT 0;
DECLARE temp VARCHAR(64) DEFAULT "csdn,Clearlove没有7,一键三连";
WHILE i < 3 DO
SET i = i + 1;
SELECT split(temp,i);
END WHILE;
END;
CALL main();