Mysql_游标
MySQL中的游標(biāo)是一個十分重要的概念。游標(biāo)提供了一種對從表中檢索出的數(shù)據(jù)進(jìn)行操作的靈活手段,就本質(zhì)而言,游標(biāo)實(shí)際上是一種能從包括多條數(shù)據(jù)記錄的結(jié)果集中每次提取一條記錄的機(jī)制。MySQL中的游標(biāo)的語法如下:
DECLARE cursor-name CURSOR FOR SELECT ...; /* 聲明一個游標(biāo),名稱為cursor-name,并用CURSOR FOR SELECT*/DECLARE CONTINUE HANDLER FOR NOT FOUND /*指定當(dāng)遍歷完結(jié)果集后,游標(biāo)如何繼續(xù)處理*/
OPEN cursor-name; /*打開游標(biāo) */
FETCH cursor-name INTO variable [, variable]; /* 將變量賦值給游標(biāo)*/
CLOSE cursor-name; /*使用后關(guān)閉游標(biāo)*/
一個具體的例子如下:
DELIMITER //CREATE PROCEDURE `proc_CURSOR` (OUT param1 INT)
BEGIN
DECLARE a, b, c INT;
DECLARE cur1 CURSOR FOR SELECT col1 FROM table1;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET b = 1;
OPEN cur1;
SET b = 0;
SET c = 0;
WHILE b = 0 DO
FETCH cur1 INTO a;
IF b = 0 THEN
SET c = c + a;
END IF;
END WHILE;
CLOSE cur1;
SET param1 = c;
END //
其中,DECLARE cur1 CURSOR FOR SELECT col1 FROM table1;
表示將從table1表中選取col1列的內(nèi)容放到游標(biāo)curl中,即每次游標(biāo)遍歷的結(jié)果都放在curl中,要注意游標(biāo)只能向前遍歷,而不能向后,并且注意,游標(biāo)不能更新,最后關(guān)閉游標(biāo)。
轉(zhuǎn)載于:https://www.cnblogs.com/ingstyle/p/4368430.html
總結(jié)
- 上一篇: 巧用DOS命令合并多个文本文件的内容
- 下一篇: Hibernate中启用日志