第1个sql:
DROP PROCEDURE IF EXISTS procedurename;
DELIMITER $$
CREATE PROCEDURE procedurename(IN r_param1 VARCHAR(2000) )
BEGIN
DECLARE in_param1 VARCHAR(20);
DECLARE in_param2 VARCHAR(2000);
DECLARE in_param3 VARCHAR(2000);
DECLARE out_del_rows INT;
DECLARE out_upled_rows INT;
DECLARE out_uptra_rows INT;
-- 对输入参数进行处理
SET in_param1 = SUBSTR(r_param1,1,19);
SET in_param2 = REPLACE(r_param1,'-',',');
SET in_param3= SUBSTR(in_param2,26);
DELETE FROM tablename1 WHERE FIND_IN_SET(id,in_param1)>0 ;
SET out_del_rows = ROW_COUNT();
UPDATE tablename2 SET field1 = @param1 WHERE FIND_IN_SET(field1,in_param3)>0 ;
SET out_upled_rows = ROW_COUNT();
UPDATE tablename3 SET field2 = @param1 WHERE FIND_IN_SET(field2,in_param3)>0 ;
SET out_uptra_rows = ROW_COUNT();
SELECT in_param1,in_param2,in_param3,out_del_rows,out_upled_rows,out_uptra_rows;
END$$
DELIMITER ;
CALL procedurename('1705978375876026371=====-1705978376480006147-1705978376610029570-1705978376735858690');
第2个:
DROP PROCEDURE IF EXISTS procedurename;
DELIMITER $$
CREATE PROCEDURE procedurename(IN r_param1 VARCHAR(2000) )
BEGIN
DECLARE in_param1 VARCHAR(20);
DECLARE in_param2 VARCHAR(2000);
DECLARE in_param3 VARCHAR(2000);
-- 对输入参数进行处理
SET in_param1 = SUBSTRING_INDEX(r_param1,'=====',1);
SET in_param2 = REPLACE(r_param1,'-',',');
SET in_param3= SUBSTRING_INDEX(in_param2,'=====,',-1);
SELECT in_param1,in_param2,in_param3;
END$$
DELIMITER ;
CALL procedurename('17059783758760263712=====-1705978376480006147-1705978376610029570-1705978376735858690');