zoukankan      html  css  js  c++  java
  • mysql 游标查询

    引用:http://blog.csdn.net/a600423444/article/details/6424360

     1203人阅读 评论(0) 收藏 举报
    [c-sharp] view plaincopy
    1. CREATE PROCEDURE update_pointer()  
    2. BEGIN  
    3.     /* 定义变量一 */  
    4.     DECLARE  total float;  
    5.     DECLARE  uid int;  
    6.     DECLARE  _done int default 0;  
    7.     DECLARE currentP int default 0;  
    8.     DECLARE firstid int;  
    9.     DECLARE secondid int;  
    10.     DECLARE parentId VARCHAR(16);  
    11.     DECLARE first_jj_yy int default 0;#第一程基建燃油费  
    12.     DECLARE second_jj_ry int default 0;#第二程基建燃油费  
    13.     /* 定义光标 */  
    14.     DECLARE _Cur CURSOR FOR  
    15.             SELECT aliTotal,ordUID,flightId,backFliId FROM fightorder WHERE ordState=4;#主订单查询  
    16.     DECLARE _CurRex CURSOR FOR  
    17.         SELECT oeactTotal,ordId FROM flight_orderex WHERE oeState=4;  
    18.       
    19.       
    20.     DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET _done = 1;#错误定义,标记循环结束  
    21.       
    22.     /* 打开光标 */  
    23.     OPEN _Cur;  
    24.          /* 循环执行 */  
    25.          REPEAT  
    26.             FETCH _Cur INTO total, uid, firstid, secondid;  
    27.             IF NOT _done THEN  
    28.                 IF total>0 AND uid>0 THEN  
    29.                     SELECT fcn+fyq into first_jj_yy FROM flightlist WHERE flightId=firstid limit 1;  
    30.                     IF secondid>0 THEN  
    31.                         SELECT fcn+fyq into second_jj_ry FROM flightlist WHERE flightId=firstid limit 1;  
    32.                     END IF;  
    33.                     UPDATE sysusers SET integral=(integral+total)-(second_jj_ry+first_jj_yy) WHERE sysusers.UID=uid;  
    34.                 END IF;  
    35.             END IF;  
    36.          UNTIL _done END REPEAT; #当_done=1时退出被循  
    37.     /*关闭光标*/  
    38.     CLOSE _Cur;  
    39.     SET _done = 0;#只有定义为0,新的循环才能继续。  
    40.     OPEN _CurRex;  
    41.     REPEAT  
    42.         FETCH _CurRex INTO total,parentId;  
    43.         IF NOT _done THEN  
    44.             #IF total > 0 THEN  
    45.                 SELECT ordUID into uid FROM fightorder WHERE fightorder.alipayNo=parentId limit 1;#查询用户UID  
    46.                 #INSERT INTO test values(total,uid);  
    47.                 UPDATE sysusers SET integral=integral+total WHERE sysusers.UID=uid;#新增积分  
    48.             #END IF;  
    49.         END IF;  
    50.     UNTIL _done END REPEAT;  
    51.     CLOSE _CurRex;  
    52. END  
     
  • 相关阅读:
    教你彻底弄懂JS中this的指向
    js-原型,原型链
    Firefox SyntaxError: invalid regexp group ChunkLoadError: Loading chunk task-show-task-show-module failed.
    什么是标签语义化?标签语义化有什么意义?
    什么是事件委托?jquery和js怎么去实现?
    express框架
    es6
    node搭建服务器
    node内容
    ajax面试题
  • 原文地址:https://www.cnblogs.com/sode/p/3083555.html
Copyright © 2011-2022 走看看