在MySQL中分割字符串
MySQL分割字符串返回表格存储过程代码片
.
--@AUTHOR ICDCOM
--@DATE 2019-05-09
DELIMITER $$
DROP PROCEDURE IF EXISTS `proc_str_split` $$
CREATE PROCEDURE proc_str_split(in s varchar(1024), in dlmtr varchar(64))
BEGIN
declare s_length int default 0;
declare cut_pos int default 1;
declare count_of_dlmtr int default 0;
declare off_set int default -1;
declare i int default 0;
DROP TABLE IF EXISTS `tmp_split`;
create temporary table `tmp_split` (`val_` varchar(128) not null) DEFAULT CHARSET=utf8mb4;
set s_length = length(s);
while s_length <> length(substring_index(s, dlmtr, cut_pos))
do
set cut_pos = cut_pos + 1;
end while;
set count_of_dlmtr = cut_pos - 1;
while(count_of_dlmtr >= 0)
do
insert into tmp_split(`val_`) values (substring_index(substring_index(s, ',', (0 - count_of_dlmtr) + off_set), ',', 1));
set count_of_dlmtr = count_of_dlmtr - 1;
end while;
select * from tmp_split;
END$$
--Test
call proc_str_split('1,2,3,4', ',');