mysql存储过程如何获取多个结果集

问题描述

mysql存储过程如何获取多个结果集

我想用mysql存储过程获取外键数据,然后通过out输出来。结果发现就能获取一条记录,不知道怎么去获取多条。麻烦各位帮忙看下。

存储过程代码:
CREATE PROCEDURE empCusState( in riqi date,out rname varchar(2000),out cname varchar(2000),out tname varchar(2000))
begin

declare sql_text varchar(5000);

set sql_text = concat('select t.t_Name , r.r_Name , c.c_Name into @sql_tname, @sql_rname,@sql_cname from
((roomcourse rc inner join teacher t on rc.t_Id=t.t_Id ) inner join room r on rc.r_Id=r.r_Id) inner join course c on rc.c_Id=c.c_Id where rc.rc_dates='',riqi,''');

set @sql_text = sql_text;

prepare stmt from @sql_text;

execute stmt;

set rname = @sql_rname;

set cname = @sql_cname;

set tname = @sql_tname;

end

执行代码:
call empCusState('2014-03-03',@a,@b,@c);
select @a,@b,@c;

时间: 2024-12-02 23:41:50

mysql存储过程如何获取多个结果集的相关文章

php mysql procedure实现获取多个结果集的方法【基于thinkPHP】_php技巧

本文实例讲述了php mysql procedure实现获取多个结果集的方法.分享给大家供大家参考,具体如下: protected function getRs($id) { $db = new mysqli(C("DB_HOST"), C("DB_USER"), C("DB_PWD"), C("DB_NAME"), C("DB_PORT")); if (mysqli_connect_errno()) th

mybatis-如何通过MyBatis获取mysql存储过程返回的不确定个数的多个结果集?

问题描述 如何通过MyBatis获取mysql存储过程返回的不确定个数的多个结果集? (网上搜到的案例,都是固定个数的多个结果集的场景,比如这种:http://www.iteye.com/problems/78259 .**请注意,我的问题与此不同**.) 我需要返回不确定个数个结果集.MySQL存储过程形如: while(i <= n + 1) do select * from t_tab t where t.a = i limit 020;end while 其中,**n是外部传入的.结果集

当PHP遇到MySQL存储过程

1.MySQL存储过程 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它. 一个存储过程是一个可编程的函数,它在数据库中创建并保存.它可以有SQL语句和一些特殊的控制结构组成.当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是非常有用的.数据库中的存储过程可以看做是对编

java调用mysql存储过程实例分析

  本文实例讲述了java调用mysql存储过程的方法.分享给大家供大家参考.具体如下: 数据库的测试代码如下 : 1.新建表test ? 1 2 3 4 5 create table test( field1 int not null ) TYPE=MyISAM ; insert into test(field1) values(1); 2.删除已存在的存储过程: ? 1 2 3 -- 删除储存过程 delimiter // -- 定义结束符号 drop procedure p_test; 3

php调用MySQL存储过程的方法集合

本篇文章是对php调用MySQL存储过程的方法进行了集合与汇总,需要的朋友参考下   类型一:调用带输入.输出类型参数的方法 复制代码 代码如下: $returnValue = ''; try {  mysql_query ( "set @Return" );  $spname = 'P__Test_GetInfo1';  mysql_query ( "call $spname(@Return, '{$userId}', '{$pwd}')" ) or die (

mysql存储过程详细教程

记录MYSQL存储过程中的关键语法: DELIMITER //  声明语句结束符,用于区分;CREATE PROCEDURE demo_in_parameter(IN p_in int)  声明存储过程BEGIN .... END  存储过程开始和结束符号SET @p_in=1   变量赋值 DECLARE l_int int unsigned default 4000000;  变量定义 什么是mysql存储例程? 存储例程是存储在数据库服务器中的一组sql语句,通过在查询中调用一个指定的名称

MySql存储过程学习知识小结_Mysql

什么是存储过程: 存储过程可以说是一个记录集吧,它是由一些T-SQL语句组成的代码块,这些T-SQL语句代码像一个方法一样实现一些功能(对单表或多表的增删改查),然后再给这个代码块取一个名字,在用到这个功能的时候调用他就行了. 存储过程的好处: 1.由于数据库执行动作时,是先编译后执行的.然而存储过程是一个编译过的代码块,所以执行效率要比T-SQL语句高. 2.一个存储过程在程序在网络中交互时可以替代大堆的T-SQL语句,所以也能降低网络的通信量,提高通信速率. 3.通过存储过程能够使没有权限的

Mybatis调用MySQL存储过程的简单实现

1.存储过程的简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它. 一个存储过程是一个可编程的函数,它在数据库中创建并保存.它可以有SQL语句和一些特殊的控制结构组成.当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是非常有用的.数据库中的存储过程可以看做是对编程中

MySQL存储过程和函数的操作(十二)_Mysql

数据库对象表时存储和操作数据的逻辑结构,而数据库对象存储过程和函数,则是用来实现将一组关于表操作的sql语句当作一个整体来执行.在数据库系统中,当调用存储过程和函数时,则会执行这些对象中所设置的sql语句组,从而实现相应功能. 1. 为什么使用存储过程和函数的操作     有时针对表的一个完整操作往往不是单条sql语句就可以实现的,而是需要一组sql语句来实现.在具体应用当中,一个完整的操作会包含多条sql语句,在执行过程中需要根据前面sql语句的执行结果有选择地执行后面sql语句.     存