最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于MySQL游標(biāo)的具體使用詳解

 更新時(shí)間:2013年06月11日 16:27:12   作者:  
本篇文章是對(duì)MySQL游標(biāo)的具體使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下

測試表 level ;

復(fù)制代碼 代碼如下:

create table test.level (name varchar(20));

再 insert 些數(shù)據(jù) ;

代碼

初始化

復(fù)制代碼 代碼如下:

drop procedure if exists useCursor //

建立 存儲(chǔ)過程 create
復(fù)制代碼 代碼如下:

CREATE PROCEDURE useCursor()

BEGIN


局部變量的定義 declare
復(fù)制代碼 代碼如下:

declare tmpName varchar(20) default '' ; 
declare allName varchar(255) default '' ; 
declare cur1 CURSOR FOR SELECT name FROM test.level ; 

MySQL 游標(biāo) 異常后 捕捉

并設(shè)置 循環(huán)使用 變量 tmpname 為 null 跳出循環(huán)。

復(fù)制代碼 代碼如下:

declare CONTINUE HANDLER FOR SQLSTATE '02000' SET tmpname = null;

開游標(biāo)
復(fù)制代碼 代碼如下:

OPEN cur1;

游標(biāo)向下走一步
復(fù)制代碼 代碼如下:

FETCH cur1 INTO tmpName;

循環(huán)體 這很明顯 把MySQL 游標(biāo)查詢出的 name 都加起并用 ; 號(hào)隔開
復(fù)制代碼 代碼如下:

WHILE ( tmpname is not null) DO
set tmpName = CONCAT(tmpName ,";") ;
set allName = CONCAT(allName ,tmpName) ;

游標(biāo)向下走一步
復(fù)制代碼 代碼如下:

FETCH cur1 INTO tmpName;

結(jié)束循環(huán)體:
復(fù)制代碼 代碼如下:

END WHILE;

關(guān)閉游標(biāo)
復(fù)制代碼 代碼如下:

CLOSE cur1;

選擇數(shù)據(jù)
復(fù)制代碼 代碼如下:

select allName ;

結(jié)束存儲(chǔ)過程
復(fù)制代碼 代碼如下:

END;//

調(diào)用存儲(chǔ)過程:
復(fù)制代碼 代碼如下:

call useCursor()//

運(yùn)行結(jié)果:
復(fù)制代碼 代碼如下:

mysql> call useCursor()//

+--------------------------------------+

| allName                              |

+--------------------------------------+

| f1;c3;c6;c5;c2;c4;c1;f1;f3;f4;f2;f5; |

+--------------------------------------+

1 row in set (0.00 sec)


loop循環(huán)游標(biāo):
復(fù)制代碼 代碼如下:

DELIMITER $$ 

DROP PROCEDURE IF EXITS cursor_example$$ 
CREATE PROCEDURE cursor_example() 
     READS SQL DATA 
BEGIN 
     DECLARE l_employee_id INT; 
     DECLARE l_salary NUMERIC(8,2); 
     DECLARE l_department_id INT; 
     DECLARE done INT DEFAULT 0; 
     DECLARE cur1 CURSOR FOR SELECT employee_id, salary, department_id FROM employees; 
     DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1; 

     OPEN cur1; 
     emp_loop: LOOP 
         FETCH cur1 INTO l_employee_id, l_salary, l_department_id; 
         IF done=1 THEN 
             LEAVE emp_loop; 
         END IF; 
     END LOOP emp_loop; 
     CLOSE cur1; 
END$$ 
DELIMITER ; 

repeat循環(huán)游標(biāo):
復(fù)制代碼 代碼如下:

/*創(chuàng)建過程*/
DELIMITER //
DROP PROCEDURE IF EXISTS test //
CREATE PROCEDURE test()
BEGIN
    DECLARE done INT DEFAULT 0;
    DECLARE a VARCHAR(200) DEFAULT '';
    DECLARE c VARCHAR(200) DEFAULT '';

    DECLARE mycursor CURSOR FOR SELECT  fusername FROM uchome_friend;
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1;

    OPEN mycursor;

    REPEAT
        FETCH mycursor INTO a;
        IF NOT done THEN
            SET c=CONCAT(c,a);/*字符串相加*/
        END IF;

    UNTIL done END REPEAT;

    CLOSE mycursor;

    SELECT c;
END //
DELIMITER ;

復(fù)制代碼 代碼如下:

/*創(chuàng)建過程*/
DELIMITER //
DROP PROCEDURE IF EXISTS test //
CREATE PROCEDURE test()
BEGIN
    DECLARE done INT DEFAULT 0;
    DECLARE a VARCHAR(200) DEFAULT '';
    DECLARE c VARCHAR(200) DEFAULT '';

    DECLARE mycursor CURSOR FOR SELECT  fusername FROM uchome_friend;
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1;

    OPEN mycursor;

    REPEAT
        FETCH mycursor INTO a;
        IF NOT done THEN
            SET c=CONCAT(c,a);/*字符串相加*/
        END IF;

    UNTIL done END REPEAT;

    CLOSE mycursor;

    SELECT c;
END //
DELIMITER ;

相關(guān)文章

  • MySQL數(shù)據(jù)庫主從復(fù)制與讀寫分離

    MySQL數(shù)據(jù)庫主從復(fù)制與讀寫分離

    大家好,本篇文章主要講的是MySQL數(shù)據(jù)庫主從復(fù)制與讀寫分離,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • mysql 5.7.18 winx64 免安裝 配置方法

    mysql 5.7.18 winx64 免安裝 配置方法

    這篇文章主要介紹了mysql 5.7.18 winx64 免安裝配置方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-04-04
  • MySQL服務(wù)無法啟動(dòng)的解決辦法(親測有效)

    MySQL服務(wù)無法啟動(dòng)的解決辦法(親測有效)

    用管理員身份打開cmd試圖啟動(dòng)MySQL時(shí)出現(xiàn)服務(wù)無法啟動(dòng)并提示服務(wù)沒有報(bào)錯(cuò)任何錯(cuò)誤,所以本文小編給大家介紹了一個(gè)親測有效的解決辦法,需要的朋友可以參考下
    2023-12-12
  • MySQL雙主(主主)架構(gòu)配置方案

    MySQL雙主(主主)架構(gòu)配置方案

    這篇文章主要介紹了MySQL雙主(主主)架構(gòu)配置方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • mysql下載與安裝過程詳解

    mysql下載與安裝過程詳解

    這篇文章主要介紹了mysql下載與安裝過程,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • 簡述Mysql Explain 命令

    簡述Mysql Explain 命令

    MySQL的EXPLAIN命令用于SQL語句的查詢執(zhí)行計(jì)劃(QEP)。如果你的頁面返回結(jié)果很慢,你就需要使用explain去分析你的sql是否需要優(yōu)化了.接下來通過本文給大家介紹Mysql Explain 命令,感興趣的朋友一起學(xué)習(xí)吧
    2016-10-10
  • MYSQL事務(wù)教程之Yii2.0商戶提現(xiàn)功能

    MYSQL事務(wù)教程之Yii2.0商戶提現(xiàn)功能

    這篇文章主要給大家介紹了關(guān)于MYSQL事務(wù)教程之Yii2.0商戶提現(xiàn)功能的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • 提升MySQL查詢效率及查詢速度優(yōu)化的四個(gè)方法詳析

    提升MySQL查詢效率及查詢速度優(yōu)化的四個(gè)方法詳析

    查詢語句的優(yōu)化是提高M(jìn)ySQL查詢速度的重要方法,可以通過使用JOIN語句、子查詢、優(yōu)化where子句等方式來減少查詢的時(shí)間,下面這篇文章主要給大家介紹了關(guān)于提升MySQL查詢效率及查詢速度優(yōu)化的四個(gè)方法,需要的朋友可以參考下
    2023-04-04
  • Mysql ERROR 1067: Invalid default value for字段問題

    Mysql ERROR 1067: Invalid default v

    這篇文章主要介紹了Mysql ERROR 1067: Invalid default value for字段問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • mysql主從同步快速設(shè)置方法

    mysql主從同步快速設(shè)置方法

    記錄一個(gè)比較簡便的mysql的主從同步設(shè)置步驟,方便日后使用。
    2010-12-12

最新評(píng)論

永兴县| 云霄县| 夏津县| 云龙县| 陵水| 邯郸县| 静乐县| 尉犁县| 赤水市| 惠州市| 西贡区| 凭祥市| 抚宁县| 上杭县| 九寨沟县| 泾阳县| 咸宁市| 汉中市| 青阳县| 安福县| 宜都市| 宜城市| 连江县| 侯马市| 定日县| 乐都县| 忻州市| 仲巴县| 庆元县| 密云县| 环江| 托里县| 正蓝旗| 石渠县| 桐城市| 镇原县| 乳山市| 镶黄旗| 百色市| 尉犁县| 乌兰浩特市|