This tutorial explains how to declare a cursor in MySQL with syntax and examples.
A cursor is a SELECT statement that is defined within the declaration section of your stored program in MySQL.
The syntax to declare a cursor in MySQL is:
DECLARE cursor_name CURSOR FOR
select_statement;
The name to assign to the cursor.
The SELECT statement associated with the cursor.
Let's look at how to declare a cursor in MySQL.
For example:
DECLARE c1 CURSOR FOR
SELECT site_id
FROM sites
WHERE site_name = name_in;
The result set of this cursor is all site_id values where the site_name matches the name_in variable.
Below is a function that uses this cursor.
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 ;
You could then call your new function (that contains the cursor) as follows:
SELECT FindSiteID ('AODBA.com');