mysql存储过程-MySql存储过程里 如何接收返回的多个结果

问题描述

MySql存储过程里 如何接收返回的多个结果

BEGIN

DECLARE userNames varchar(500) DEFAULT ''; ##用户名字
DECLARE sums int DEFAULT 0;
DECLARE namess varchar(500) DEFAULT '';
DECLARE i int;
set i = 0;
select count(*) into sums from book where price = 123;
##select name into namess from book where price = 123;##这个是错误的因为这条sql 返回的有多条数据

while i < sums
DO
    set i = i+1;
end while;

END

上述select 中 结果为:
id name price
1 aa 123
2 bb 123

我想把得到的多条数据中 name字段里的值拿出来拼成 aa,bb 这样的字符传 怎么做,请大家帮帮我.感激不尽

解决方案

$name = '';
$sql = "select name from book where price=123";
$que = mysql_query($sql) or die(mysql_error());
while($arr = mysql_fetch_assoc($que)){
$name .=','.$arr['name'];
}
echo substr($name,1);

时间: 2024-09-17 12:20:28

mysql存储过程-MySql存储过程里 如何接收返回的多个结果的相关文章

mysql存储过程 在动态SQL内获取返回值的方法详解_Mysql

MySql通用分页存储过程过程参数 复制代码 代码如下: p_cloumns varchar(500),p_tables varchar(100),p_where varchar(4000),p_order varchar(100),p_pageindex int,p_pagesize int,out p_recordcount int,out p_pagecount int  $:begin    declare v_sqlcounts varchar(4000);    declare v_

Mysql高级之存储过程

原文:Mysql高级之存储过程 概念类似于函数,就是把一段代码封装起来,当要执行这一段代码的时候,可以通过调用该存储过程来实现.在封装的语句体里面,可以用if/else, case,while等控制结构.可以进行sql编程. 在mysql中,存储过程和函数的区别, 一个是名称不同, 二个就是存储过程没有返回值. 如果想获得返回值怎么办那?通过out性变量就OK! 查看现有的存储过程: Show procedure status   删除存储过程 Drop procedure 存储过程的名字  

C#连接mysql然后查询存储过程

问题描述 C#连接mysql然后查询存储过程 C#连接mysql 然后查询一个名为userinfo的存储过程,传参5 sql:call userinfo(5); 这个是查询用户的信息的存储过程,执行这个sql,然后获得查询出来的结果,并且输出. 有没有大神写个demo我学习一下,谢谢! //正常执行sql语句我会,不会查存储过程 解决方案 C#调用mysql查询存储过程c#连接mysql 找不到存储过程mysql 树形结构查询(存储过程) 解决方案二: using System;using Sy

Sql Server 存储过程调用存储过程接收输出参数返回值

创建存储过程: ALTER PROCEDURE [dbo].[GetCustomers] (@rowcount INT OUTPUT) AS SELECT [CustomerID] ,[CompanyName] ,[ContactName] ,[ContactTitle] ,[Address] ,[City] ,[Region] ,[PostalCode] ,[Country] ,[Phone] ,[Fax] FROM [Northwind].[dbo].[Customers] SET @row

mysql使用mybatis批量添加数据,返回主键

问题描述 mysql使用mybatis批量添加数据,返回主键 mysql使用mybatis批量添加,使用各种方法都无法返回对应的主键,请兄弟们不吝赐教 解决方案 该功能无法实现,只能分步骤来,先插入在查询 解决方案二: 批量添加还要返回主键??这个不太可能吧.最多也就返回插入的条数.如果返回主键,那不是了返回一个list然后里面放主键?一条一条插入倒是可以返回主键 解决方案三: 分步骤来,先插入在查询

node.js的mysql模块query方法里的字符串拼接问题

问题描述 node.js的mysql模块query方法里的字符串拼接问题 我写了一个和mysql交互的Node.js.大致功能是,在浏览器端提交用户信息表单后,会在现有的表userInfo里插入一条用户记录:然后针对这条用户记录自动再生成一个表,该表的名称是根据这条记录的id动态生成的. 该部分我写的代码如下: //上面的代码已经实现把一条新的用户记录插入到userInfo里了. var userId; var tableName; db.query(//这里通过query方法获取这条新记录的i

C# 调用存储过程操作 OUTPUT参数和Return返回值

本文转载:http://www.cnblogs.com/libingql/archive/2010/05/02/1726104.html 存储过程是存放在数据库服务器上的预先编译好的sql语句.使用存储过程,可以直接在数据库中存储并运行功能强大的任务.存储过程在第一应用程序执行时进行语法检查和编译,编译好的版本保存在高速缓存中.在执行重复任务时,存储过程可以提高性能和一致性.由于存储过程可以将一系列对数据库的操作放在数据库服务器上执行,因而可以降低Web服务器的负载,提高整个系统的性能.   1

【MySql】mysql 的权限体系介绍

mysql 的权限体系大致分为5个层级: 全局层级 全局权限适用于一个给定服务器中的所有数据库.这些权限存储在mysql.user表中.GRANT ALL ON *.*和REVOKE ALL ON *.*只授予和撤销全局权限. 数据库层级 数据库权限适用于一个给定数据库中的所有目标.这些权限存储在mysql.db和mysql.host表中.GRANT ALL ON db_name.*和REVOKE ALL ON db_name.*只授予和撤销数据库权限. 表层级 表权限适用于一个给定表中的所有列

通用存储过程.分页存储过程

/*名称:spAll_ReturnRows输入:输出:调用:  EXEC spAll_ReturnRows 'SELECT  * FROM 表名', 页号, 返回记录数, '主键', '排序字段'  spAll_ReturnRows 'SELECT  * FROM all_Categories',2,10,'[ID]','[ID]'说明:[百万级]通用存储过程.分页存储过程..返回指定返回条数.指定页数的记录 */ CREATE PROCEDURE dbo.spAll_ReturnRows(@S