mysql如何遍历数组中,mysql存储过程中遍历数组字符串的两种方式

第一种:多次使用substring_index()的方法

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 TABLE test.tmp(field1 VARCHAR(100));

WHILE @i <= @count

DO

INSERT INTO test.tmp VALUES

(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", &quot ...

java中数组复制的两种方式

在java中数组复制有两种方式: 一:System.arraycopy(原数组,开始copy的下标,存放copy内容的数组,开始存放的下标,需要copy的长度); 这个方法需要先创建一个空的存放cop ...

&period;Net 中读写Oracle数据库常用两种方式

.net中连接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 ...

&lbrack;Android&rsqb; Android ViewPager 中加载 Fragment的两种方式 方式&lpar;二&rpar;

接上文: https://www.cnblogs.com/wukong1688/p/10693338.html Android ViewPager 中加载 Fragmenet的两种方式 方式(一) 二 ...

&lbrack;Android&rsqb; Android ViewPager 中加载 Fragment的两种方式 方式&lpar;一&rpar;

Android ViewPager 中加载 Fragmenet的两种方式 一.当fragment里面的内容较少时,直接 使用fragment xml布局文件填充 文件总数 布局文件:view_one. ...

随机推荐

浅谈Hybrid技术的设计与实现第三弹——落地篇

前言 接上文:(阅读本文前,建议阅读前两篇文章先) 浅谈Hybrid技术的设计与实现 浅谈Hybrid技术的设计与实现第二弹 根据之前的介绍,大家对前端与Native的交互应该有一些简单的认识了,很多 ...

oracle 存储过程 包 【转】

一.为什么要用存储过程? 如果在应用程序中经常需要执行特定的操作,可以基于这些操作简历一个特定的过程.通过使用过程可以简化客户端程序的开发和维护,而且还能提高客户端程序的运行性能. 二.过程的优点? ...

Hadoop版Helloworld之wordcount运行示例

1.编写一个统计单词数量的java程序,并命名为wordcount.java,代码如下: import java.io.IOException; import java.util.StringToke ...

webpack&lpar;一&rpar; 配置

一.entry  & output mode: 'development', // entry: './src/index', // entry: ['./src/index', './src ...

sqlserver中分区函数 partition by与 group by 区别 删除关键字段重复列

partition  by关键字是分析性函数的一部分,它和聚合函数(如group by)不同的地方在于它能返回一个分组中的多条记录,而聚合函数一般只有一条反映统计值的记录, partition  by ...

Flume的基本概念

Flume 概念 Flume 最早是Cludera提供的日志收集系统,后贡献给Apache.所以目前是Apache下的项目,Flume支持在日志系统中指定各类数据发送方,用于收集数据. Flume 是 ...

原型设计工具——axure认识与使用

原型设计工具——axure认识与使用 10款原型设计工具推荐 pasting

SpringMVC系列(七)视图解析器和视图

在springmvc.xml里面配置视图解析器

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值