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)



          主站蜘蛛池模板: 梧州市| 太湖县| 西乌| 将乐县| 武冈市| 乐都县| 库伦旗| 浦江县| 青州市| 田阳县| 元朗区| 南靖县| 金溪县| 建瓯市| 屏东县| 张掖市| 湄潭县| 荣昌县| 潜江市| 青浦区| 武清区| 天全县| 穆棱市| 甘泉县| 高要市| 秦皇岛市| 弥渡县| 来宾市| 汾西县| 彭山县| 彩票| 马鞍山市| 万山特区| 洮南市| 龙山县| 合阳县| 大埔区| 佳木斯市| 宜城市| 泸溪县| 彭州市|