-
mysql游标遍历问题...5
CREATE PROCEDURE `UserCenterAction`(uId int,timeArea date)
BEGIN
DECLARE notInIds varchar(255 );
DECLARE userLocation varchar(10);
DECLARE notFriendIds varchar(255 );
DECLARE differentLocaleIds varchar(255 );
DECLARE notFriendActionIdTemp int;
DECLARE notFriendActionOwnerIdTemp int;
DECLARE differentLocaleActionIdTemp int;
DECLARE differentLocaleActionOwnerIdTemp int;
DECLARE isFriend int ;
DECLARE isSameArea int default 0;
DECLARE notFriendCount int ;
DECLARE differentLocationCount int default 0;
DECLARE onlyFriendCur CURSOR for select id,Creater_id from member_action where display_flag='Y' and Create_time > timeArea and permission_code="-4";
DECLARE netWorkAndFriendCur CURSOR for select id,Creater_id from member_action where display_flag='Y' and Create_time > timeArea and permission_code="-3";
select count(*) into notFriendCount from member_action where display_flag='Y' and Create_time > timeArea and permission_code='-4';
select Location into userLocation from member where userId=uId ;
open onlyFriendCur;
WHILE notFriendCount > 0 DO
fetch onlyFriendCur into notFriendActionIdTemp,notFriendActionOwnerIdTemp;
SET notFriendCount = notFriendCount-1;
select count(*) into isFriend from member_friends where Owner_id=uId
and friend_id=notFriendActionOwnerIdTemp;
select notFriendActionIdTemp as 动作ID,notFriendActionOwnerIdTemp
as 动作拥有者ID,notFriendCount as 总记录数,userLocation as 用户所在地区,isFriend as 是否为朋友 ;
END WHILE;
close onlyFriendCur;
END;
为什么 代码中的WHILE循环只循环一次? notFriendCount 这个变量是大于1的,麻烦各位指点下,想了好久想不通2010年4月06日 14:29
目前还没有答案
相关推荐
### MySQL游标(循环操作) #### 一、游标简介 在MySQL中,游标是一种数据库对象,主要用于处理存储过程中的结果集。游标允许我们逐行地读取查询结果,这对于需要对每一行数据执行特定操作的情况非常有用。通过...
在大多数关系型数据库管理系统(如MySQL、SQL Server、Oracle等)中,都支持游标的使用。游标的创建、打开、读取、移动和关闭是其基本操作流程。 在SQL中,创建游标通常包括以下步骤: 1. **声明游标**:定义一个...
这个过程将 fetchSeqOk 变量设置为 TRUE,当游标遍历溢出时,fetchSeqOk 变量将被设置为 TRUE,从而控制循环的退出条件。 如果需要实现嵌套的游标循环,可以使用 BEGIN 和 END 语句来划分一个statement block,例如...
MySQL游标是数据库管理系统中用于遍历查询结果集的一种机制,尤其在处理大量数据或进行迭代操作时,游标显得尤为重要。这篇博文可能是探讨如何在MySQL中使用游标,特别是当游标执行到最后一行后如何正确地结束循环。...
游标(Cursor)是数据库中的一种控制结构,可以用来遍历查询结果集。游标嵌套则是指在一个游标内部定义另一个游标,以实现更加复杂的数据操作。MySQL 支持游标嵌套,允许开发者创建复杂的数据处理逻辑。 二、示例...
然后,声明了一个名为`c_accountlog`的游标,该游标将遍历满足特定条件的记录。这里,游标被用来处理与当前`BORROW_ID`相关的账户日志记录。 在游标`c_accountlog`的循环中,我们可以对每条记录执行一系列操作,...
[mysql游标的用法及作用] 例子: 当前有三张表A、B、C其中A和B是一对多关系,B和C是一对多关系,现在需要将B中A表的主键存到C中; 常规思路就是将B中查询出来然后通过一个update语句来更新C表就可以了,但是B表中有...
MySQL游标是数据库管理系统中的一个重要概念,主要用于在存储过程或函数中逐行处理查询结果集。游标允许程序按需一次处理一行数据,而非一次性获取所有数据,这在处理大量数据时尤其有用,因为它可以避免一次性加载...
在存储过程中,他们定义了一个`CONTINUE HANDLER`来捕获`NOT FOUND`异常,当游标遍历完所有记录时,`NOT FOUND`会被触发,设置`done`为1,从而结束循环。然而,实际情况可能是循环逻辑的错误导致了多一次的迭代。...
它使用游标遍历数据,然后根据条件更新库存量。 3. **游标**:游标是数据库系统中的一个实用工具,允许逐行处理结果集。在存储过程中,游标用于迭代结果集并执行针对每一行的操作。在`oh_qty`存储过程中,`oh_cur`...
例如,当游标遍历完所有记录时,会触发一个预定义的 `NOT FOUND` 错误。我们可以设置一个继续处理程序(`continue handler`)来捕获这个错误,从而决定是否继续循环: ```sql declare continue handler for NOT ...
假设有一个表`employees`,包含字段`id`、`name`和`salary`,下面的示例展示了如何使用游标遍历该表中的所有记录: ```sql DELIMITER // CREATE PROCEDURE process_employees() BEGIN DECLARE emp_id INT; ...
在MySQL当中的游标其实和java中的iterator迭代器这种类型类似,都是一个集合,然后通过循环遍历,游标现在是用来处理结果集的,首先要设置一个游标的结束
本文实例讲述了mysql游标的原理与用法。分享给大家供大家参考,具体如下: 本文内容: 什么是游标 创建游标 使用游标 首发日期:2018-04-18 什么是游标: 如果你前面看过mysql函数,会发现无法使用返回多行...
示例中的`stu_proc`存储过程使用游标遍历`student_info`表,提取特定学生的信息。执行存储过程使用`CALL procedure_name()`。 总结,游标和存储函数在MySQL中是处理数据的强大工具。游标用于逐行处理结果集,而...
MySQL存储过程和游标是数据库编程中的重要概念,它们在实际项目...通过这个项目,你不仅能掌握MySQL存储过程和游标的使用,还能提高解决问题的能力和数据库设计的思路。在实际开发中,这些技能将大大提升你的工作效率。
3. **移动与提取**:使用FETCH语句从游标中获取当前行的数据,可以向前或向后移动游标(如使用NEXT、PREVIOUS),直到遍历完所有行。在处理完一行后,可以更新或删除该行,然后再移动到下一行。 4. **关闭与释放**...