没有合适的资源?快使用搜索试试~ 我知道了~
二三级表插入,参数是一字符串。 缺点:插入二三级表时,必须知道每张表的字段个数。
资源推荐
资源详情
资源评论
mysql 5.* 的版本现在没有split 函数,但有些地方会用,在这里就简单记录一下:
先设置:SET GLOBAL log_bin_trust_function_creators = 1;
1. 函数func_splitStringTotal:将字符串按指定方式分割,并计算单元总数
DELIMITER $$
CREATE FUNCTION func_get_splitStringTotal(
f_string varchar(10000),f_delimiter varchar(50)
) RETURNS int(11)
BEGIN
return 1+(length(f_string) - length(replace(f_string,f_delimiter,'')));
END$$
DELIMITER ;
set @teststr='1,2,3,4,5,6,7';
set @split=',';
select func_get_splitStringTotal(@teststr,@split);
结果:func_get_splitStringTotal(@teststr,@split)=7
2.函数func_splitString:将字符串按指定方式分割,获取指定位置的数
DELIMITER $$
DROP function IF EXISTS func_splitString $$
CREATE FUNCTION func_splitString
( f_string varchar(1000),f_delimiter varchar(5),f_order int)
RETURNS varchar(255) CHARSET utf8
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;
先设置:SET GLOBAL log_bin_trust_function_creators = 1;
1. 函数func_splitStringTotal:将字符串按指定方式分割,并计算单元总数
DELIMITER $$
CREATE FUNCTION func_get_splitStringTotal(
f_string varchar(10000),f_delimiter varchar(50)
) RETURNS int(11)
BEGIN
return 1+(length(f_string) - length(replace(f_string,f_delimiter,'')));
END$$
DELIMITER ;
set @teststr='1,2,3,4,5,6,7';
set @split=',';
select func_get_splitStringTotal(@teststr,@split);
结果:func_get_splitStringTotal(@teststr,@split)=7
2.函数func_splitString:将字符串按指定方式分割,获取指定位置的数
DELIMITER $$
DROP function IF EXISTS func_splitString $$
CREATE FUNCTION func_splitString
( f_string varchar(1000),f_delimiter varchar(5),f_order int)
RETURNS varchar(255) CHARSET utf8
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$$
set @teststr='字段1,字段2,字段3,字段4,字段5,字段6,字段7';
set @split=',';
SELECT func_splitString(@teststr,@split,6);
结果:func_splitString(@teststr,@split,6)='字段6';
3.过程splitString 将字符串分割,并放到临时表tmp_split 里面DELIMITER $$
DROP PROCEDURE IF EXISTS splitString $$
CREATE PROCEDURE splitString
(IN f_string varchar(1000),IN f_delimiter varchar(5))
BEGIN
declare cnt int default 0;
declare i int default 0;
set cnt = func_get_splitStringTotal(f_string,f_delimiter);
DROP TABLE IF EXISTS tmp_split;
create temporary table tmp_split (`val_` varchar(128) not null) DEFAULT CHARSET=utf8;
while i < cnt
do
set i = i + 1;
insert into tmp_split(`val_`) values (func_splitString(f_string,f_delimiter,i));
end while;
END$$
set @teststr='字段1,字段2,字段3,字段4,字段5,字段6,字段7';
set @split=',';
call splitString(@teststr,@split);
SELECT * from tmp_split;
结果:val_=字段1 字段2 字段3 字段4 字段5 字段6 字段7 = 共7行
set @teststr='字段1,字段2,字段3,字段4,字段5,字段6,字段7';
set @split=',';
SELECT func_splitString(@teststr,@split,6);
结果:func_splitString(@teststr,@split,6)='字段6';
3.过程splitString 将字符串分割,并放到临时表tmp_split 里面DELIMITER $$
DROP PROCEDURE IF EXISTS splitString $$
CREATE PROCEDURE splitString
(IN f_string varchar(1000),IN f_delimiter varchar(5))
BEGIN
declare cnt int default 0;
declare i int default 0;
set cnt = func_get_splitStringTotal(f_string,f_delimiter);
DROP TABLE IF EXISTS tmp_split;
create temporary table tmp_split (`val_` varchar(128) not null) DEFAULT CHARSET=utf8;
while i < cnt
do
set i = i + 1;
insert into tmp_split(`val_`) values (func_splitString(f_string,f_delimiter,i));
end while;
END$$
set @teststr='字段1,字段2,字段3,字段4,字段5,字段6,字段7';
set @split=',';
call splitString(@teststr,@split);
SELECT * from tmp_split;
结果:val_=字段1 字段2 字段3 字段4 字段5 字段6 字段7 = 共7行
剩余11页未读,继续阅读
资源评论
筱_
- 粉丝: 2
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- springboot-mavenBaseDemo 内容包含:springboot的maven基础状态,1.8JDK可以直接运行
- otis rsl远程串行接口协议标准.pdf
- buildx构建镜像时所需的镜像文件
- F103-霸道开发板2.8寸电阻触摸屏例程.rar
- Google(高德)地图瓦片python代码下载
- Python实现输出杨辉三角形
- polsarpro官方教程、操作说明 PolSARpro v5.0 Software Training Course
- STM32 TouchGFX的使用二图片显示
- buildx镜像文件,也可以通过网上其他方式获取
- 【中级软件设计师】上午题12-软件工程(2):单元测试、黑盒测试、白盒测试、软件运行与维护
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功