MYSQL的存储过程如何返回查询到的行数据?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MYSQL的存储过程如何返回查询到的行数据?相关的知识,希望对你有一定的参考价值。

比如我想写一个存储过程:输入一个班级号,然后输出班级里同学的信息,同学数量是未知的。 手里的表有班级表和学生信息表,班级表有学生学号对应学生信息表。 谢谢了
补充一下,返回的学生信息我希望通过存储过程的out返回

out返回只能是确定的某种类型的一个值,例如VARCHAR或者INT等等,你想返回多条记录的话只需要在最后加上一个或者多个SELECT语句就行了啊,然后在外面用ResultSet对象接住就行了。 参考技术A 别想了,存储过程不是你这样用的,存储过程只能返回基本的数据类型;当然如果要这样弄的话,你可以把数据存储到另一个表中,然后根据返回的数据查询另一个表。
你这需求也不需要用到存储过程,直接select语句不就行了吗追问

我也知道这不需要用到存储过程,但是这是需求所以我也没办法。。。顺便问下具体要怎么做,把数据放到另一个表后,最后还是要用存储过程返回数据的啊,返回的类型怎么写?

追答

比如用UUID()生成一个值,然后将记录带上这个值写到另一个表中,然后返回值,最后根据返回的uuid查询另一个表获得。。。。。

本回答被提问者和网友采纳

如何在PHP中获取MYSQL数据库返回的数据的行数?

如何在PHP中获取MYSQL数据库返回的数据的行数?$result=mysql_db_query($mysql_database, $strsql, $conn);数据集是result,怎么得到它的记录数?

1、首先打开MYSQL的管理工具,新建一个test表,并且在表中插入两个字段。

2、接下来在Editplus编辑器中创建一个PHP文件,然后进行数据库连接,并且选择要操作的数据库。

3、然后通过mysql_query方法执行一个Insert的插入语句。

4、执行完毕以后,我们回到数据库管理工具中,这个时候你会发现插入的中文乱码了。

5、接下来我们在PHP文件中通过mysql_query执行一个set  names  utf8语句即可完成操作。

参考技术A <?php echo mysql_num_rows($result);?>
根据你的数据集,假设符合条件的有5条,那么上面的代码会输出5
参考技术B mysql_num_rows()或者select count(*) from table;本回答被提问者采纳 参考技术C

1. mysql_num_rows 可得到查询记录数

<?php
$con = mysql_connect("localhost", "hello", "321");
if (!$con)
  
  die('Could not connect: ' . mysql_error());
  
$db_selected = mysql_select_db("test_db",$con);
$sql = "SELECT * FROM person";
$result = mysql_query($sql,$con);
echo mysql_num_rows($result);
mysql_close($con);
?>

2. mysql_affected_rows可得到更新影响的记录数

<?php
$con = mysql_connect("localhost","mysql_user","mysql_pwd");
if (!$con)
  
  die("Could not connect: " . mysql_error());
  
mysql_select_db("mydb");
mysql_query("DELETE FROM mytable WHERE id < 5");
$rc = mysql_affected_rows();
echo "Records deleted: " . $rc;
mysql_close($con);
?>

以上是关于MYSQL的存储过程如何返回查询到的行数据?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 SQL 查询中仅检查从存储过程返回的行的第一个值

MySQL 存储过程,获取使用游标查询的结果集

MySQL 视图触发器函数存储过程

MYSQL 存储过程如何取得一个表的查询结果?

如何在存储过程中直接使用另一个存储过程返回的数据集

c#调用存储过程查询表并返回影响的行数