MySQL 定义游标


本MySQL教程通过语法和示例说明如何在MySQL中声明游标。
游标是一个SELECT语句,它在MySQL中的存储过程的声明部分中被定义。

语法

在MySQL中声明游标的语法为:

1
2
DECLARE cursor_name CURSOR FOR
select_statement;
参数 说明
cursor_name 指定游标的名称。
select_statement 与游标相关联的SELECT语句。

MySQL 定义游标示例

如何在MySQL中声明游标:

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

这个游标的结果集是site_name与name_in相匹配时对应的所有site_id值。

如何使用mysql游标:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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 ;

然后,就可以按以下方式调用包含游标的新函数:

1
SELECT FindSiteID ('yunkai');


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