MySQL字符串转数组
时间: 2023-11-01 13:53:05 浏览: 184
mysql字符集转换
要在MySQL中实现字符串转数组的功能,可以使用以下存储过程:
```
drop table if exists list;
create temporary table list(id INT not null);
drop PROCEDURE if exists strings_to_array;
create PROCEDURE strings_to_array(s_str varchar(128), s_split varchar(3))
begin
set @i = length(s_str) - length(replace(s_str,s_split,'')); -- 算出分隔符的总数
set @left_str = s_str;
while @i > 0 -- 有多少个分隔符就循环多少遍
do
set @sub_str = substr(@left_str,1,instr(@left_str,s_split)-1); -- 得到分隔符前面的字符串
set @left_str = substr(@left_str,length(@sub_str) + length(s_split) + 1); -- 得到分隔符后面的字符串
set @n = trim(@sub_str);
insert into list(id) values(@n);
set @i = @i - 1;
end while;
set @n = trim(@left_str);
insert into list(id) values(@n);
end;
CALL strings_to_array('0,1,2,29,7,9,14',',');
select * from list;
DROP TEMPORARY TABLE IF EXISTS list;
```
这个存储过程首先会创建一个临时表`list`来存储拆分后的数组。然后使用`while`循环来逐步拆分字符串并插入到临时表中。最后,从临时表中选择数据并返回。
请注意,这段代码需要在MySQL数据库中执行,并且需要提前创建一个存储过程。并且你需要根据自己的实际情况调整字符串和分隔符的参数。
阅读全文