Het MySQL-equivalent zou er ongeveer zo uitzien:
BEGIN
DECLARE CurrentFirstName VARCHAR(300);
DECLARE CurrentAge INT;
DECLARE done INT DEFAULT FALSE;
DECLARE CursorName CURSOR FOR
SELECT FirstName, Age FROM Customers;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
OPEN CursorName;
myloop: LOOP
FETCH CursorName INTO CurrentFirstName, CurrentAge;
IF done THEN
LEAVE myloop;
END IF;
IF CurrentAge > 60 THEN
insert into ElderCustomers values (CurrentFirstName,CurrentAge);
END IF;
END LOOP;
CLOSE CursorName;
END;
Het grote verschil zit in de lus, waarbij de CONTINUE HANDLER wordt gebruikt om een vlag in te stellen wanneer er geen rijen meer zijn om op te halen, en de lus verlaat wanneer de vlag is ingesteld. (Dat ziet er lelijk uit, maar zo gaat het in MySQL.)
Dit voorbeeld roept de vraag op waarom dit niet (efficiënter, in zowel SQL Server als MySQL) is geschreven als:
INSERT INTO ElderCustomers (FirstName, Age)
SELECT FirstName, Age
FROM Customers
WHERE Age > 60