0 0

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 游标遍历 实例

    在大多数关系型数据库管理系统(如MySQL、SQL Server、Oracle等)中,都支持游标的使用。游标的创建、打开、读取、移动和关闭是其基本操作流程。 在SQL中,创建游标通常包括以下步骤: 1. **声明游标**:定义一个...

    mysql游标详解

    这个过程将 fetchSeqOk 变量设置为 TRUE,当游标遍历溢出时,fetchSeqOk 变量将被设置为 TRUE,从而控制循环的退出条件。 如果需要实现嵌套的游标循环,可以使用 BEGIN 和 END 语句来划分一个statement block,例如...

    mysql游标实现到了最后一个结束之后结束循环

    MySQL游标是数据库管理系统中用于遍历查询结果集的一种机制,尤其在处理大量数据或进行迭代操作时,游标显得尤为重要。这篇博文可能是探讨如何在MySQL中使用游标,特别是当游标执行到最后一行后如何正确地结束循环。...

    mysql游标嵌套[文].pdf

    游标(Cursor)是数据库中的一种控制结构,可以用来遍历查询结果集。游标嵌套则是指在一个游标内部定义另一个游标,以实现更加复杂的数据操作。MySQL 支持游标嵌套,允许开发者创建复杂的数据处理逻辑。 二、示例...

    Mysql存储过程循环内嵌套使用游标示例代码

    然后,声明了一个名为`c_accountlog`的游标,该游标将遍历满足特定条件的记录。这里,游标被用来处理与当前`BORROW_ID`相关的账户日志记录。 在游标`c_accountlog`的循环中,我们可以对每条记录执行一系列操作,...

    详解Mysql 游标的用法及其作用

    [mysql游标的用法及作用] 例子: 当前有三张表A、B、C其中A和B是一对多关系,B和C是一对多关系,现在需要将B中A表的主键存到C中; 常规思路就是将B中查询出来然后通过一个update语句来更新C表就可以了,但是B表中有...

    MySql游标的使用实例

    MySQL游标是数据库管理系统中的一个重要概念,主要用于在存储过程或函数中逐行处理查询结果集。游标允许程序按需一次处理一行数据,而非一次性获取所有数据,这在处理大量数据时尤其有用,因为它可以避免一次性加载...

    处理MySQL的典型问题.pdf

    在存储过程中,他们定义了一个`CONTINUE HANDLER`来捕获`NOT FOUND`异常,当游标遍历完所有记录时,`NOT FOUND`会被触发,设置`done`为1,从而结束循环。然而,实际情况可能是循环逻辑的错误导致了多一次的迭代。...

    mysql函数、存储过程、触发器、游标.doc

    它使用游标遍历数据,然后根据条件更新库存量。 3. **游标**:游标是数据库系统中的一个实用工具,允许逐行处理结果集。在存储过程中,游标用于迭代结果集并执行针对每一行的操作。在`oh_qty`存储过程中,`oh_cur`...

    Mysql的游标的定义使用及关闭深入分析

    例如,当游标遍历完所有记录时,会触发一个预定义的 `NOT FOUND` 错误。我们可以设置一个继续处理程序(`continue handler`)来捕获这个错误,从而决定是否继续循环: ```sql declare continue handler for NOT ...

    Mysql中sql语句游标详解

    假设有一个表`employees`,包含字段`id`、`name`和`salary`,下面的示例展示了如何使用游标遍历该表中的所有记录: ```sql DELIMITER // CREATE PROCEDURE process_employees() BEGIN DECLARE emp_id INT; ...

    seliencepuppet#mysql#20.mysql游标的创建1

    在MySQL当中的游标其实和java中的iterator迭代器这种类型类似,都是一个集合,然后通过循环遍历,游标现在是用来处理结果集的,首先要设置一个游标的结束

    mysql游标的原理与用法实例分析

    本文实例讲述了mysql游标的原理与用法。分享给大家供大家参考,具体如下: 本文内容: 什么是游标 创建游标 使用游标 首发日期:2018-04-18 什么是游标: 如果你前面看过mysql函数,会发现无法使用返回多行...

    游标和存储函数.docx

    示例中的`stu_proc`存储过程使用游标遍历`student_info`表,提取特定学生的信息。执行存储过程使用`CALL procedure_name()`。 总结,游标和存储函数在MySQL中是处理数据的强大工具。游标用于逐行处理结果集,而...

    mysql存储过程_游标_项目练习

    MySQL存储过程和游标是数据库编程中的重要概念,它们在实际项目...通过这个项目,你不仅能掌握MySQL存储过程和游标的使用,还能提高解决问题的能力和数据库设计的思路。在实际开发中,这些技能将大大提升你的工作效率。

    过程和游标实验.rar

    3. **移动与提取**:使用FETCH语句从游标中获取当前行的数据,可以向前或向后移动游标(如使用NEXT、PREVIOUS),直到遍历完所有行。在处理完一行后,可以更新或删除该行,然后再移动到下一行。 4. **关闭与释放**...

Global site tag (gtag.js) - Google Analytics