MySQL FETCH语句-提取游标


本教程将学习如何使用FETCH语句为游标获取下一行。

在大多数情况下,使用游标的目的是从游标检索行,以便可以对数据执行某种类型的操作。在声明并打开游标之后,下一步就是使用FETCH语句从游标中获取行数据。

语法

MySQL中FETCH语句的语法为:

1
FETCH [ NEXT [ FROM ] ] cursor_name INTO variable_list;
参数 说明
cursor_name 要获取行的游标的名称。
variable_list 要将游标结果集存储在其中的变量列表(用逗号分隔)。

让我们看一下如何使用MySQL中的FETCH语句获取游标的下一行。

首先在MySQL中定义一个游标:

1
2
3
4
DECLARE c1 CURSOR FOR
SELECT site_id
FROM sites
WHERE site_name = name_in;

从该游标中获取数据:

1
FETCH c1 INTO siteID;

它将会提取第一个site_id值到变量site_ID中。

下面的函数演示如何了使用FETCH语句。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

</td>

DELIMITER //
CREATE FUNCTION FindSiteID ( name_in VARCHAR(50) )
RETURNS INT
BEGIN
DECLARE done INT DEFAULT FALSE;
DECLARE siteID INT DEFAULT 0;
DECLARE c1 CURSOR FOR
SELECT site_id
FROM sites
WHERE site_name = name_in;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
OPEN c1;
FETCH c1 INTO siteID;
CLOSE c1;
RETURN siteID;
END; //
DELIMITER ;


原文链接:https://codingdict.com/