DELIMITER $$
drop procedure if exists touch_;
CREATE PROCEDURE `touch_`(IN a varchar(20),IN b varchar(20),IN c varchar(20))
BEGIN if a="Integer" then
SET a ="3";
end if;
SET b ="2";
SET c ="1";
set @v_flag = concat("select * from t where id!=",a," and id!=",b," and id!=",c);
prepare ee from @v_flag;
EXECUTE ee ;
DEALLOCATE PREPARE ee;
END$$
DELIMITER $$
drop procedure if exists touch_;
CREATE PROCEDURE `touch_`(IN a varchar(20),IN b varchar(20),IN c varchar(20))
BEGIN SET a ="3";
SET b ="2";
SET v ="1";
set @v_flag = concat("select * from t where id!=",a," and id!=",b," and id!=",c);
prepare ee from @v_flag;
EXECUTE ee ;
DEALLOCATE PREPARE ee;
END$$
存储过程只能在begin 和end 之间设置变量值
声明部分目前我还不知道