日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
MySQL游標(biāo)的具體使用方案

以下的文章主要描述的是MySQL 游標(biāo)的具體使用方案,如果你對(duì)MySQL 游標(biāo)的實(shí)際操作有興趣的話(huà),你就可以對(duì)以下的文章點(diǎn)擊觀(guān)看了,希望在你瀏覽之后會(huì)給你帶來(lái)一些幫助在此方面。

請(qǐng)使用 MySQL 1.5 或以上version;

測(cè)試表 level ;

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

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

代碼

初始化

drop procedure if exists useCursor //

建立 存儲(chǔ)過(guò)程 create

CREATE PROCEDURE useCursor()

BEGIN

局部變量的定義 declare

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

MySQL 不知道為什么用異常加入判斷 ?

此請(qǐng)參考官方文檔 20.2.11. 光標(biāo) 光標(biāo)

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

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

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

開(kāi)游標(biāo)

OPEN cur1;

游標(biāo)向下走一步

 
 
 
  1. FETCH cur1 INTO tmpName;

循環(huán)體 這很明顯 把MySQL 游標(biāo)查詢(xún)出的 name 都加起并用 ; 號(hào)隔開(kāi)

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

游標(biāo)向下走一步

 
 
 
  1. FETCH cur1 INTO tmpName;
  2. END WHILE;
  3. CLOSE cur1;
  4. select allName ;
  5. END;//
  6. call useCursor()//

運(yùn)行結(jié)果:

代碼

 
 
 
  1. MySQL> call useCursor()//
  2. +--------------------------------------+
  3. | allName |
  4. +--------------------------------------+
  5. | f1;c3;c6;c5;c2;c4;c1;f1;f3;f4;f2;f5; |
  6. +--------------------------------------+
  7. 1 row in set (0.00 sec)

代碼

 
 
 
  1. DELIMITER $$ 
  2. DROP PROCEDURE IF EXITS cursor_example$$ 
  3. CREATE PROCEDURE cursor_example() 
  4. READS SQL DATA 
  5. BEGIN 
  6. DECLARE l_employee_id INT; 
  7. DECLARE l_salary NUMERIC(8,2); 
  8. DECLARE l_department_id INT; 
  9. DECLARE done INT DEFAULT 0; 
  10. DECLARE cur1 CURSOR FOR SELECT employee_id, salary, department_id FROM employees; 
  11. DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1; 
  12. OPEN cur1; 
  13. emp_loop: LOOP 
  14. FETCH cur1 INTO l_employee_id, l_salary, l_department_id; 
  15. IF done=1 THEN 
  16. LEAVE emp_loop; 
  17. END IF; 
  18. END LOOP emp_loop; 
  19. CLOSE cur1; 
  20. END$$ 
  21. DELIMITER ; 

代碼

創(chuàng)建過(guò)程

 
 
 
  1. DELIMITER //
  2. DROP PROCEDURE IF EXISTS test //
  3. CREATE PROCEDURE test()
  4. BEGIN
  5. DECLARE done INT DEFAULT 0;
  6. DECLARE a VARCHAR(200) DEFAULT '';
  7. DECLARE c VARCHAR(200) DEFAULT '';
  8. DECLARE mycursor CURSOR FOR SELECT fusername FROM uchome_friend;
  9. DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1;
  10. OPEN mycursor;
  11. REPEAT 
  12. FETCH mycursor INTO a;
  13. IF NOT done THEN
  14. SET c=CONCAT(c,a);

字符串相加

 
 
 
  1. END IF;
  2. UNTIL done END REPEAT;
  3. CLOSE mycursor;
  4. SELECT c;
  5. END //
  6. DELIMITER ;

以上的相關(guān)內(nèi)容就是對(duì)MySQL 游標(biāo)使用的介紹,望你能有所收獲。


分享文章:MySQL游標(biāo)的具體使用方案
當(dāng)前路徑:http://www.5511xx.com/article/dpscceo.html