关于Mysql 存储过程的问题 ?

比如, 我想查询A表的max(i) 和B表的 min(i)
有没有办法写一个存储过程 ,通过一次查询,获得两个值 比如[max(i) , min(i)]的形式

偶然的你
浏览 686回答 1
1回答

蝴蝶刀刀

给一个简单的例子给你DROP PROCEDURE IF EXISTS insertStudents;CREATE PROCEDURE insertStudents(IN P_SNAME VARCHAR(20))BEGINDECLARE V_STUID INT DEFAULT 0;SET @V_BIRTHDAY ='';SET @NAME=P_SNAME;SET @V_BIRTHDAY=date_format(NOW(), '%Y%m%d%H%i%s');SELECT MAX(STUID) INTO V_STUID FROM Students;if V_STUID is null thenset V_STUID=1;elseSET V_STUID=V_STUID+1;end if;SET @ID=cast(V_STUID AS CHAR);-- 将数字转化为字符-- SET @ID=CONCAT(V_STUID,''); -- 将数字转化为字符SET @INSERTSQL=CONCAT('INSERT INTO Students(STUID,SNAME,BIRTHDAY) VALUES(?,?,?)');start transaction;PREPARE stmtinsert FROM @INSERTSQL;EXECUTE stmtinsert USING @ID,@NAME,@V_BIRTHDAY;savepoint tran_a;SET V_STUID=V_STUID+1;SET @ID=cast(V_STUID AS CHAR);-- 将数字转化为字符EXECUTE stmtinsert USING @ID,@NAME,@V_BIRTHDAY;DEALLOCATE PREPARE stmtinsert;rollback to tran_a;commit;END;
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

MySQL