posts - 165, comments - 198, trackbacks - 0, articles - 1
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          mysql 游標(biāo)使用

          Posted on 2008-04-27 17:05 G_G 閱讀(7129) 評(píng)論(0)  編輯  收藏 所屬分類: Database
          請(qǐng)使用 mysql 1.5 或以上version;
          測(cè)試表 level ;
          create table test.level (name varchar(20));
          再 insert 些數(shù)據(jù) ;

          ?/*初始化*/?
          ?
          drop?procedure?if?exists??useCursor?//????
          ?
          ?
          /*建立?存儲(chǔ)過程?create?*/?
          ?
          CREATE?PROCEDURE?useCursor()
          ????
          BEGIN
          ????
          /*局部變量的定義?declare*/?
          ?????????
          declare?tmpName?varchar(20)?default?''?;
          ?????????
          declare?allName?varchar(255)?default?''?;
          ?????????
          ?????????
          declare?cur1?CURSOR?FOR?SELECT?name?FROM?test.level?;
          ?????????
          ?????????
          /*????mysql?不知道為什么用異常加入判斷??
          ??????????*????此請(qǐng)參考官方文檔
          20.2.11. 光標(biāo) 光標(biāo)?
          ??????????*????????這把?游標(biāo)?異常后?捕捉?
          ??????????*????????并設(shè)置?循環(huán)使用?變量?tmpname?為?null?跳出循環(huán)。
          ??????????
          */
          ?????????
          declare?CONTINUE?HANDLER?FOR?SQLSTATE?'02000'?SET?tmpname?=?null;
          ????
          ????
          ????
          /*開游標(biāo)*/?
          ?????
          OPEN?cur1;
          ?????????
          /*游標(biāo)向下走一步*/?
          ?????????
          FETCH?cur1?INTO?tmpName;
          ?????????
          ?????????
          /*?循環(huán)體?這很明顯?把游標(biāo)查詢出的?name?都加起并用?;?號(hào)隔開?*/
          ??????
          WHILE?(?tmpname?is?not?null)?DO
          ??????????
          set?tmpName?=?CONCAT(tmpName?,";")?;
          ??????? ?
          set?allName?=?CONCAT(allName?,tmpName)?;
          ????????
          /*游標(biāo)向下走一步*/?
          ????????
          FETCH?cur1?INTO?tmpName;
          ??????
          END?WHILE;
          ??
          ????
          CLOSE?cur1;
          ????
          ????
          select?allName?;
          END;//
          call?useCursor()
          //
          ?

          運(yùn)行結(jié)果:
          mysql>?call?useCursor()//
          +--------------------------------------+
          |?allName??????????????????????????????|
          +--------------------------------------+
          |?f1;c3;c6;c5;c2;c4;c1;f1;f3;f4;f2;f5;?|
          +--------------------------------------+
          1?row?in?set?(0.00?sec)



          主站蜘蛛池模板: 屏边| 和田县| 九龙县| 杨浦区| 铁岭县| 礼泉县| 肇东市| 宁化县| 清涧县| 沈阳市| 湘潭市| 墨江| 台湾省| 武陟县| 堆龙德庆县| 山东| 巴林右旗| 杭锦后旗| 桦川县| 上饶市| 开封县| 南阳市| 安阳县| 南召县| 太湖县| 松江区| 油尖旺区| 广安市| 诏安县| 奎屯市| 道孚县| 扎赉特旗| 湾仔区| 巴东县| 正蓝旗| 无为县| 吉隆县| 子长县| 措美县| 盈江县| 湄潭县|