mysql split
CREATE DEFINER=`root`@`localhost` PROCEDURE `procedure_split`(IN `inputstring` varchar(1000), IN `delim` char(1))
BEGIN
declare strlen int DEFAULT length(inputstring);
declare last_index int DEFAULT 0;
declare cur_index int DEFAULT 1;
declare cur_char VARCHAR(200);
declare len int;
drop temporary table if exists splittable;
create TEMPORARY table splittable(
value VARCHAR(20)
) ;
WHILE(cur_index<=strlen) DO
begin
if substring(inputstring from cur_index for 1)=delim or cur_index=strlen then
set len=cur_index-last_index-1;
if cur_index=strlen then
set len=len+1;
end if;
insert into splittable(`value`)values(substring(inputstring from (last_index+1) for len));
set last_index=cur_index;
end if;
set cur_index=cur_index+1;
END;
end while;
-- call PROCEDURE_split("中国,开源,社区",",");
-- select * from splittable;
END;
方法 二 :
CREATE DEFINER=`root`@`%` FUNCTION `func_get_split_string`( f_string varchar(1000),f_delimiter varchar(5),f_order int) RETURNS varchar(255) BEGIN declare result varchar(255) default ""; set result = reverse(substring_index(reverse(substring_index(f_string,f_delimiter,f_order)),f_delimiter,1)); return result; END
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: C#中的数组操作练习
- 下一篇: 求数组相邻元素差值的最大值快速算法(C++版)
