mysql儲存過程傳遞字串引數

2021-05-24 13:54:21 字數 1214 閱讀 7044

儲存過程:

create procedure pro_getuserinfo(in szempname varchar(1000))

-> begin

-> declare strsql varchar(1000);

-> set strsql = concat('insert into tmptable_userinfo(empname,pcname,ip) select empname,pcname,ip from t_sc_usermanager where empname in (', szempname, ')');

-> drop table if exists tmptable_userinfo;

-> create temporary table tmptable_userinfo(empname varchar(32) not null, pcname varchar(32) not null, ip varchar(32) not null);

-> set @sql1 = strsql;

-> prepare stmt_p from @sql1;

-> execute stmt_p;

-> end

->

呼叫:call pro_getuserinfo("'172.16.10.2','172.16.10.21'"); // 引數用雙引號,其實用單引號也行,但是如果引數裡有引號就亂套了

下面的方法不行:

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

->

mysql字串拼接,儲存過程

mysql concat函式可以連線乙個或者多個字串,如 select concat 10 結果 10 select concat 11 22 33 結果 112233 mysql的concat函式在連線字串的時候,只要其中乙個是null,那麼將返回null select concat 11 22 ...

mysql 字串分割儲存過程

drop procedure if exists splitstr create procedure splitstr in str varchar 255 out substr varchar 2000 out idstr varchar 100 begin declare index var v...

MySql分割字串 儲存過程

mysql沒有表變數,通過函式無法返回表。參考 delimiter use 資料庫 drop procedure if exists split create definer sa scmone procedure split in string varchar 300 begin 求分割符號 的位...