mwfd.net
当前位置:首页 >> mysql 创建存储过程中用到循环,怎么通过sElECt返回结果集 >>

mysql 创建存储过程中用到循环,怎么通过sElECt返回结果集

测试表与测试数据 CREATE TABLE TestMulToOne ( name VARCHAR(10), allTitles VARCHAR(200) ); INSERT INTO TestMulToOne VALUES ('张三', '程序员,系统管理员,网络管理员'); INSERT INTO TestMulToOne VALUES ('李四',

如果对select 返回的结果行都需要处理,使用游标.如果只想取得返回多行中的一行,使用limit.

从存储过程返回表类型的值也有二种:1.存储过程使用浮标参数,即同时指定CURSOR VARYING OUTPUT项.调用者可以使用while及fetch循环遍历该浮标.2.直接将存储过程返回的结果集插入到表中,即使用insert into 表名 exec 存储过程.此种方

可以通过游标循环获取对应的结果,与resultset的用处是一致的

引用 4 楼 acmain_chm 的回复:引用 3 楼 nancy_thm 的回复:引用 2 楼 acmain_chm 的回复:没看懂楼主的问题,建议举例说明.问题说明越详细,回答也会越准确!参见如何提问.(提问的智慧)比如我根据一定的条件查询用户信息(ID),满足条件的用户不止一条.我得到用户的ID后每一个用户我都要做相应饿数据表修改数据!一一做不同的修改!谢谢最好说明一下,这些不止一条的记录,你打算如何……

这样DECLARE @id INT, @value VARCHAR(10);BEGIN -- 定义游标. DECLARE c_test_main CURSOR FAST_FORWARD FOR SELECT id,valueFROM test_main; -- 打开游标. OPEN c_test_main; WHILE 1=1 BEGIN -- 填充数据. FETCH NEXT

1、 返回结果集 这是客户端应用程序返回结果的最通用的方法.结果集是通过使用SELECT语句选择数据产生的.结果集可以从永久表、临时表或局部变量中产生.将结果返回到另一个存储过程不是一种有效的方法.存储过程不能访问另一个存

可以,存储过程只是把你的查询语句形成一个固定的格式,这样你要查询的时候就不用每次都执行查询语句了,sql在执行的时候都会将你的sql语句转换为字节码,然后机器才能运行,存储过程就节省了这一步,已经形成了字节码,所以速度才会快,特别是执行次数比较多的时候,可以节省很多时间

mysql好像不能返回一个表吧,你为什么要返回这个表呢?mssql里面可以写一个表值函数,返回一个结果集,你这里是创建了一个表,还需要返回吗?? 你的biao111已经存在在数据库里了,你直接select不就行了.而且select * into biao111 from checi 这种用法mysql也不支持.你看看这样能不能行? delimiter //create procedure proc_40()begin create table biao111 select * from checi; select * from biao111;end

这个在数据库端比较好,你现在得结果集是全部的6w数据,不太好处理,不如修改下存储过程,多增加几个参数.增加个第几页,每页显示数目.这样直接在存储过程中通过limit(mysql),或者是top直接获取就可

网站首页 | 网站地图
All rights reserved Powered by www.mwfd.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com