mysql如何遍历数组中,mysql存储过程中遍历数组字符串的两
种⽅式
第⼀种:多次使⽤substring_index()的⽅法
oracle删除触发器DELIMITER $$
DROP PROCEDURE IF EXISTS `array`$$
CREATE  PROCEDURE `array`()
BEGIN
SET @array_content="www mysql com hcymysql blog 51cto com";
SET @i=1;
SET @count=CHAR_LENGTH(@array_content)-CHAR_LENGTH(REPLACE(@array_content,' ','')) + 1;
-- 得出数组成员总数
CREATE p(field1 VARCHAR(100));
WHILE @i <= @count
DO
INSERT p VALUES
mysql怎么读英语(SUBSTRING_INDEX(SUBSTRING_INDEX(@array_content,' ',@i),' ',-1));
-- 依次插⼊每个成员
SET @i=@i+1;
END WHILE;
END$$
DELIMITER ;
第⼆种:使⽤遍历每个字符的⽅法
drop procedure if exists Pro_DeleteLog; -- 存在即删除
create procedure Pro_DeleteLog( Qualification varchar(100))  -- 定义参数
begin
declare i int ;
declare Start1 int;
declare Length int ;
declare TotalLenght int ;
declare filed varchar(100) ;
declare sqlStr varchar(2000) ;
declare stmtNovelSearch varchar(2000) ;
set i=1;
set Start1=1;
set Length=0;
set TotalLenght=length(Qualification);  -- 计算输⼊参数长度
select TotalLenght;
while i <=TotalLenght do -- i=1 开始
-- select SUBSTRING(Qualification,i,1);
if(SUBSTRING(Qualification,i,1)=',') -- 注意 mysql 的substring函数截取字符串是从1开始的,⽽不是0 与java JavaScript不同。
-- 从第i位开始截取⼀个字符,看是否等于,
then
set filed=SUBSTRING(Qualification,Start1,Length);-- 从start1开始截取length长度的字符
select filed;
set @sqlStr = CONCAT('insert into end_results(accessid,filedName,errinfo)select * from (select w1.accessid ,\'',filed ,'\' as filedName,',filed,' from wdd_audit w1 ,wdd_dbaccessinfo w2 where w1.accessid=w2.accessid )a where not exists(select
e.',filed ,' from exp_results e where e.',filed,'=a.',filed,' or(e.',filed,' is null and a.',filed,' is null) );');
-- 拼装sql语句
select @sqlStr;
PREPARE stmtNovelSearch FROM @sqlStr; -- prepare 必须采⽤这种传参⽅式
execute stmtNovelSearch;
deallocate prepare stmtNovelSearch;
set Start1=i+1;
set Length=0;
else
set Length=Length+1; -- 如果不是, 则截取的长度加1
end if;
set i=i+1;
end while;
end
-- 调⽤存储过程  字段名以,分隔  注意最后 , 结尾
call Pro_DeleteLog('payload,backresult,dataset,effectrow,clientuser,loginuser,clientprg,')
个⼈推荐第⼀种;
C语⾔中存储多个字符串的两种⽅式
C语⾔中存储多个字符串的两种⽅式 ⽅式⼀    ⼆维字符串数组 声明: char name[][] = { "Justinian", "Momo", " ...
编程语言推荐java中数组复制的两种⽅式
在java中数组复制有两种⽅式: ⼀:System.arraycopy(原数组,开始copy的下标,存放copy内容的数组,开始存放的下标,需要copy的长度); 这个⽅法需要先创建⼀个空的存放cop ...
.Net 中读写Oracle数据库常⽤两种⽅式
中连接Oracle 的两种⽅式:OracleClient,OleDb转载 2015年04⽉24⽇ 00:00:24 10820.Net 中读写Oracle数据库常⽤两种⽅
式:OracleCli ...
spring接收json字符串的两种⽅式
⼀.前⾔ 前⼏天遇到⼀个问题,前端H5调⽤我的springboot⼀个接⼝(post⽅式,@RequestParameter接收参数),传⼊的参数接收不到.⾃⼰测试接⼝时使⽤postman的form- ...
strus2中获取表单数据 两种⽅式 属性驱动 和模型驱动
strus2中获取表单数据 两种⽅式 属性驱动 和模型驱动 属性驱动 /** * 当前请求的action在栈顶,ss是栈顶的元素,所以可以利⽤setValue⽅法赋值 * 如果⼀个属性在对象栈,在页⾯ ...
怎样在Android开发中FPS游戏实现的两种⽅式⽐较
怎样在Android开发中FPS游戏实现的两种⽅式⽐较 如何⽤Android平台开发FPS游戏,其实现过程有哪些⽅法,这些⽅法⼜有哪些不同的地⽅呢?⾸先让我们先了解下什么是FPS 英⽂名:FPS (F ...
HTML中设置背景图的两种⽅式
HTML中设置背景图的两种⽅式 1.background    background:url(images/search.png) no-repeat top; 2.background-image ...
[Android] Android ViewPager 中加载 Fragment的两种⽅式 ⽅式(⼆)
[Android] Android ViewPager 中加载 Fragment的两种⽅式 ⽅式(⼀)
Android ViewPager 中加载 Fragmenet的两种⽅式 ⼀.当fragment⾥⾯的内容较少时,直接 使⽤fragment xml布局⽂件填充 ⽂件总数布局⽂件:view_one. ...
随机推荐
浅谈Hybrid技术的设计与实现第三弹——落地篇
伦勃朗式布光法哪一年前⾔ 接上⽂:(阅读本⽂前,建议阅读前两篇⽂章先) 浅谈Hybrid技术的设计与实现 浅谈Hybrid技术的设计与实现第⼆弹 根据之前的介绍,⼤家对前端与Native的交互应该有⼀些简单的认识了,很多 ...
oracle 存储过程 包 【转】
⼀.为什么要⽤存储过程? 如果在应⽤程序中经常需要执⾏特定的操作,可以基于这些操作简历⼀个特定的过程.通过使⽤过程可以简化客户端程序的开发和维护,⽽且还能提⾼客户端程序的运⾏性能. ⼆.过程的优点? ...
Hadoop版Helloworld之wordcount运⾏⽰例
strcat函数 matlab1.编写⼀个统计单词数量的java程序,并命名为wordcount.java,代码如下: import java.io.IOException; import java.util.StringToke ...
webpack(⼀) 配置
⼀.entry  & output mode: 'development', // entry: './src/index', // entry: ['./src/index', './src ...
sqlserver中分区函数 partition by与 group by 区别 删除关键字段重复列
rust语言
partition  by关键字是分析性函数的⼀部分,它和聚合函数(如group by)不同的地⽅在于它能返回⼀个分组中的多条记录,⽽聚合函数⼀般只有⼀条反映统计值的记录, partition  by ...
Flume的基本概念
Flume 概念 Flume 最早是Cludera提供的⽇志收集系统,后贡献给Apache.所以⽬前是Apache下的项⽬,Flume⽀持在⽇志系统中指定各类数据发送⽅,⽤于收集数据. Flume 是 ...
原型设计⼯具——axure认识与使⽤
原型设计⼯具——axure认识与使⽤ 10款原型设计⼯具推荐 pasting
SpringMVC系列(七)视图解析器和视图在l⾥⾯配置视图解析器