当前位置:首页 » 存储配置 » mysql存储过程字符串拼接字符串

mysql存储过程字符串拼接字符串

发布时间: 2023-03-08 01:07:27

A. mysql利用存储过程实现批量处理数据的简单操作

-- 判断存储test是否存在,如果存在则删除

DROP PROCEDURE IF EXISTS test;

-- 创建存储过程

CREATE PROCEDURE test()

BEGIN

-- 声明循环变量int型 i

DECLARE i INT DEFAULT 1;

-- 设置i=0

set i=0;

-- 循环100次

while i<100 do

-- if判断i为偶数

if i%2 = 0 THEN

-- 要实现的操作  CONCAT(str1,str2,...) concat函数用于拼接子串和数字类型

INSERT into user(name,addr) VALUES(CONCAT('test',i,'ss'),'addr');

end if;

-- i自增

set i=i+1;

END WHILE;

END;

-- 调用存储过程

CALL test()

B. mysql存储过程求大神(拼接字符串)

DROPPROCEDUREIFEXISTS`p_create_view`

CREATEPROCEDUREp_create_view()
BEGIN
DECLAREtableNameVARCHAR(100);
DECLAREstopFlagINT;
DECLAREsql1VARCHAR(1000);
DECLAREcursor_nameCURSORFORSELECTTABLE_NAMEFROMinformation_schema.tablesWHERETABLE_NAMELIKE'test_2014%';
'02000'SETstopFlag=1;
SET@sql1='createviewtestasselectid,namefrom';
OPENcursor_name;
REPEAT
FETCHcursor_nameINTOtableName;
SELECTCONCAT(@sql1,tableName,'UNIONALLSELECTid,nameFROM')INTO@sql1FROMDUAL;
UNTILstopFlagENDREPEAT;
CLOSEcursor_name;
SELECTSUBSTR(@sql1,1,LENGTH(@sql1)-31)INTO@sql1FROMDUAL;
PREPAREstepFROM@sql1;
EXECUTEstep;
END;

C. MySQL怎么写存储过程查询某个表的某一条记录,并把这条记录的所有列名对应的值以json格式返回呢

给你个思路吧,既然你能问出这种问题应该是有了思路就会自己做的人,就不帮你写代码了。
首先,你确定这个表的所有字段中没有二进制内容,如果没有的话,下面这个思路你可以试试,但是如果有的话估计就需要对二进制进行特别的处理了,如果你有的话再追问吧。
思路开始:
1.如果你是对一张确定的表(提前已经知道表结构)进行这样的处理,那就查询出来一条记录,通过Mysql的字符串拼接函数CONCAT,按照JSON格式,慢慢的拼一个字符串,最后通过select这个字符串返回这个字符串就行了。
2.如果之前你并不知道,这个表的结构,甚至你根本不知道自己要处理的是那张表,那么存储过程中你需要传递一个表名进来,然后查询information_schema数据库中的COLUMNS表,从而获得这个表的具体字段信息,以及各个字段的先后顺序(为后面拼接字符串使用),剩下的就跟1中描述的思路一样了。

虽然不知道你的用处是什么,不过,以我个人的经验,这种返回JSON的方式并不可取,这样会增加数据库的负担,理论上应该是将数据出来后自己在程序中拼接。

D. mysql存储过程中 如何拆分字符串

MySQL分割字符串应该如何实现呢?下面就为您介绍MySQL分割字符串的实现方法步骤,希望可以让您对MySQL分割字符串有更多的了解。

例如:update `edw_video` set company = substring(keyword,1,length(SUBSTRING_INDEX(keyword,",",1)))

名称:SPLIT_SUB_STR1(取得split字符串的第一段)
参数:str 要split的目标字符串 (输入格式为‘11,2,3,4,5,6’; 输出为‘2,3,4,5,6’)
delimiter 分隔符 (‘,’)
split1 输出第一项(‘11’)
存储过程
CREATE DEFINER=`root`@`%` PROCEDURE `SPLIT_SUB_STR0`(inout str VARCHAR(1000) ,delimiter VARCHAR(1), out split1 VARCHAR(20))

BEGIN
# 名称 SPLIT_SUB_STR1 取得分割字符串的第一段字符
# 参数inout str VARCHAR(1000) ,delimiter VARCHAR(1), out split0 VARCHAR(20)
# 输入完整字符串,输出去掉取得第一项后的字符串; 分隔符; 输出split的第一个项目

#分割出第一段字符串不包括分隔符的长度
DECLARE SUB_STR_LENGTH INT;

# SUBSTRING_INDEX函数取得目标字符串左侧第n个分割符左侧的部分,n为负时返回右侧第n个的右部分
SET SUB_STR_LENGTH = length(SUBSTRING_INDEX(str,delimiter,1));

#截取第一段字符串,不包括分隔符,放入输出参数里
SET split0 = substring(str, 1, SUB_STR_LENGTH);

# 取得去掉第一个字符串和分隔符的字符串,进行下次循环取得下个字符串
SET str = substring(str, SUB_STR_LENGTH + 2 );
#测试一下输出是否正确
#SELECT SUB_STR_LENGTH, SUB_STR_SPLIT0, STR;
END

调用实例

CREATE DEFINER=`root`@`%` PROCEDURE `test`()
BEGIN
#目标字符串
set @a = ’1,2,3,4,5,6,12‘;
# 分隔符
set @c = ',';
# 存储风格后的字符串
set @b = '';

REPEAT
# 调用上面的存储过程
CALL SPLIT_SUB_STR0(@a, ',', @c);
#将取得的字符串拼接,测试用
set @b = concat(@b, @c);
#当目标字符串为空时,停止循环
UNTIL @a = ''
END REPEAT;
# 查看结果
select @a, @c, @b;

END;

E. mysql中字符串的拼接用什么函数

mysql不能直接运行动态sql语句的,但是可以写在存储过程中,然后调用过程执行,具体如下:

(1)定义存储过程,示例CREATEDEFINER=`root`@`localhost`PROCEDURE`query_extra_table(table_indexvarchar(255));

BEGIN

SET@sql=concat("select*fromtbl_order_",table_index);

PREPAREstmtFROM@sql;

EXECUTEstmt;

(2)调用存储过程:

CALLquery_extra_table('483')

F. MySQL中写存储过程用到连接字符串函数concat_ws()出错

简单的方法是你在存储过程中打印SQL,
set y_sql=concat_ws(' ','insert','into',tmp4data,'value','(',var1,var2,')');
select y_sql;

看看y_sql合并生什么, 其次在动态SQL过程中, 你定义的tmp4data到底是变量还是表的名称,如果是名称就需要添加分号

G. mysql存储过程一个参数有多个逗号分割

这个应该可以使用字符串拼接,你是不是这样写存储过程:
create procere p_proc(var_in int)
begin
delete from [tableName] where [colName] in (var_in);

end

然后又这样调用:
call p_proc(1, 2, 3);
这样肯定不行,那么你可以这样:
create procere p_proc(var_in varchar(5000))
begin

set @sql = concat("delete from [tableName] where [colName] in (", var_in, ")");

prepare stmt_exe_sql from @sql;
execute stmt_exe_sql;
deallocate prepare stmt_exe_sql;
end

这样就相当于把(1, 2, 3)拼接成语句"delete from [tableName] where [colName] in (1, 2, 3)", 然后执行,就可以删除了。

热点内容
随机启动脚本 发布:2025-07-05 16:10:30 浏览:532
微博数据库设计 发布:2025-07-05 15:30:55 浏览:29
linux485 发布:2025-07-05 14:38:28 浏览:309
php用的软件 发布:2025-07-05 14:06:22 浏览:760
没有权限访问计算机 发布:2025-07-05 13:29:11 浏览:435
javaweb开发教程视频教程 发布:2025-07-05 13:24:41 浏览:715
康师傅控流脚本破解 发布:2025-07-05 13:17:27 浏览:246
java的开发流程 发布:2025-07-05 12:45:11 浏览:691
怎么看内存卡配置 发布:2025-07-05 12:29:19 浏览:288
访问学者英文个人简历 发布:2025-07-05 12:29:17 浏览:837