本文目录
- 创建一个带三个参数的存储过程
- MySQL创建一个存储函数,输入三个数输出最小值,请写出它的语句
- mysql存储过程参数问题
- mysql 存储过程参数
- mysql 存储过程 传多个参数无法识别
- MySql存储过程中使用了Select * from user where user in (1,2,3), 如何把 1,2,3 变成参数传入
创建一个带三个参数的存储过程
怎么会有三个参数?不明白 create proc proc_cj @kcbh varchar(20) as select sum(成绩 ) 总成绩,avg(成绩) 平均成绩 from 课程 where 课程编号=@kcbh go-------------------------------------------create proc proc_pj @kcbh varchar(20),@num int output,@avg int outputas select @num=sum(学分) from kcxx where 课程编号=@kcbh select @avg=avg(学分) from kcxx where 课程编号=@kcbh godeclare @num int,@avg intexec proc_pj ’1’, @num output, @avg outputselect @numselect @avg
MySQL创建一个存储函数,输入三个数输出最小值,请写出它的语句
mysql没有块的概念,单独的块,如下 BEGIN INSERT INTO liu_test VALUE (’aa’,’bb’); END 这种块是不能执行的。单独块执行最好的办法还是建存储过程,执行结束再删除存储过程 。
mysql存储过程参数问题
改成下面这样 DELIMITER $$CREATE PROCEDURE proc3 (IN t_name VARCHAR(40))BEGINDECLARE v_sql VARCHAR(500);SET v_sql= CONCAT(’select * from ’,t_name);SELECT v_sql;SET @v_sql=v_sql;PREPARE stmt FROM @v_sql;EXECUTE stmt ;DEALLOCATE PREPARE stmt;END $$ DELIMITER ;
mysql 存储过程参数
MySQL 存储过程, 定义参数, 不需要加那个 @
例子代码如下:
mysql》 DELIMITER //mysql》 CREATE PROCEDURE HelloWorld1(vUserName VARCHAR(10)) -》 BEGIN -》 SELECT CONCAT(’Hello ’, vUserName); -》 END//Query OK, 0 rows affected (0.00 sec)mysql》 call HelloWorld1(’Edward’); -》 //+-----------------------------+| CONCAT(’Hello ’, vUserName) |+-----------------------------+| Hello Edward |+-----------------------------+1 row in set (0.00 sec)Query OK, 0 rows affected (0.02 sec)
mysql 存储过程 传多个参数无法识别
存储过程里的递归调用传的是一个参数,这肯定不对while(done = 0) docall iterateCategory(b);fetch c into b;end while;
MySql存储过程中使用了Select * from user where user in (1,2,3), 如何把 1,2,3 变成参数传入
那么写个函数来做会比较不错:create function Test(@a nvarchar,@b nvarchar,@c nvarchar) --创建名字为Test的函数给他3个参数分别为@a,@b,@creturns table --指定返回类型为表类型,也就是说这个函数为表值函数return select * from User where UserID in (@a,@b,@c)--返回 结果