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

          mysql 游標使用

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

          ?/*初始化*/?
          ?
          drop?procedure?if?exists??useCursor?//????
          ?
          ?
          /*建立?存儲過程?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?不知道為什么用異常加入判斷??
          ??????????*????此請參考官方文檔
          20.2.11. 光標 光標?
          ??????????*????????這把?游標?異常后?捕捉?
          ??????????*????????并設置?循環使用?變量?tmpname?為?null?跳出循環。
          ??????????
          */
          ?????????
          declare?CONTINUE?HANDLER?FOR?SQLSTATE?'02000'?SET?tmpname?=?null;
          ????
          ????
          ????
          /*開游標*/?
          ?????
          OPEN?cur1;
          ?????????
          /*游標向下走一步*/?
          ?????????
          FETCH?cur1?INTO?tmpName;
          ?????????
          ?????????
          /*?循環體?這很明顯?把游標查詢出的?name?都加起并用?;?號隔開?*/
          ??????
          WHILE?(?tmpname?is?not?null)?DO
          ??????????
          set?tmpName?=?CONCAT(tmpName?,";")?;
          ??????? ?
          set?allName?=?CONCAT(allName?,tmpName)?;
          ????????
          /*游標向下走一步*/?
          ????????
          FETCH?cur1?INTO?tmpName;
          ??????
          END?WHILE;
          ??
          ????
          CLOSE?cur1;
          ????
          ????
          select?allName?;
          END;//
          call?useCursor()
          //
          ?

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



          主站蜘蛛池模板: 天等县| 米脂县| 沁源县| 苍山县| 哈密市| 明溪县| 湘潭市| 定远县| 开鲁县| 凉山| 大渡口区| 沈丘县| 呼伦贝尔市| 东乌珠穆沁旗| 灵丘县| 玉门市| 惠安县| 康定县| 翁牛特旗| 神农架林区| 葵青区| 宁阳县| 康乐县| 肥乡县| 绍兴县| 揭西县| 普兰县| 景泰县| 房山区| 顺平县| 农安县| 阿拉善左旗| 乳山市| 安吉县| 长沙县| 阿鲁科尔沁旗| 铁岭县| 喀什市| 江川县| 绥宁县| 大同市|