mysql存储过程变量替换特定字符

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql存储过程变量替换特定字符相关的知识,希望对你有一定的参考价值。

请问在存储过程中,变量想要怎么替换某个字符?例如下面a变量,赋值'a(2)',我想把括号替换成'_',怎么做呢?
DECLARE a TEXT;
SET a='a(2)';

操作方法如下:

create procedure Pro_GetUserInfo(in szEmpName varchar(1000))
    -> begin
    -> drop table if exists TmpTable_UserInfo;
    -> create temporary table TmpTable_UserInfo(EmpName varchar(32) not null, PcName varchar(32) not null, IP varchar(20) not null);
    -> insert into TmpTable_UserInfo(EmpName, PcName, IP) select EmpName, PcName, IP from T_SC_UserManager where EmpName in (szEmpName);

// 不能直接传进来,如果直接传进来,展开为in("'172.16.10.2','172.16.10.21'")
    -> end
    ->

参考技术A SET a = REPLACE (a, '(', '-');
SET a = REPLACE (a, ')', '-');

当 a 数据类型是 varchar 的时候, 应该是没问题的。
如果数据类型是 TEXT 的话, 就没测试过了。本回答被提问者采纳

mysql存储过程例子

/*
定义变量
方式1:set @变量名=值;
方式2:select 值 into @变量名;
方式3:declare 变量名 类型(字符串类型加范围) default 值;

in参数 入参的值会仅在存储过程中起作用
out参数 入参的值会被置为空,存储中计算的值会影响外面引用该变量的值
inout参数 入参的值不会被置为空,存储中计算的值会影响外面引用该变量的值
*/
use mysql;
/*创建1个存储过程*/
delimiter $$
DROP PROCEDURE IF EXISTS porc_person_02;
CREATE PROCEDURE porc_person_02(IN p1 INT, OUT p2 INT, INOUT p3 VARCHAR(20))
BEGIN
DECLARE innerp1 VARCHAR(10) DEFAULT ‘this is innerp1‘;
DECLARE innerp2 VARCHAR(10) DEFAULT ‘this is innerp2‘;
SET p1=10;
SET p2=20;
SET p3=‘this is 字符串‘;


if p1=10 then
select ‘p1 is 10‘;
end if;

if p1=p2 then
select ‘p1=p2‘;
else
select p1,p2,p3;
end if;

case p3
when ‘a‘ then
select ‘p3 is a‘;
when ‘b‘ then
select ‘p3 is b‘;
when ‘c‘ then
select ‘p3 is c‘;
else
select p3;
end case;

/*条件不满足会被终止*/
while p1>4
do
set p1=p1-1;
end while;
select p1;

checka:loop
set p1=p1+1;
if p1=14 then
leave checka;
end if;
end loop;
select p1;

/*条件满足会被终止*/
repeat
set p1=p1-1;
until p1=6
end repeat;
select p1;


END;
$$

set @p_in=3;
set @p_out=2;
set @p_inout=‘b‘;
select ‘check procedure‘ into @p4;

call porc_person_02(@p_in,@p_out,@p_inout);
select @p_in,@p_out,@p_inout,@p4;

























































以上是关于mysql存储过程变量替换特定字符的主要内容,如果未能解决你的问题,请参考以下文章

shell变量的替换,命令的替换,转义字符

vue变量替换为特定值之后总是变成之前的值

Sql Developer:输入替换变量

MySQL 触发器使用值数组替换重音/不需要的变量

在 FOR 循环批处理语法中使用变量进行字符串替换

shell变量替换