Я изучаю хранимые процедуры, курсоры в MySQL и я натыкаюсь на него:Видимо возвращается NULL начнут извлекать
delimiter //
CREATE PROCEDURE some_func()
BEGIN
DECLARE link_rewrite VARCHAR(255);
DECLARE link_rewrite_cursor CURSOR FOR SELECT link_rewrite FROM prod;
OPEN link_rewrite_cursor;
SET @count = 0;
WHILE @count < 10 DO
FETCH link_rewrite_cursor INTO link_rewrite;
SELECT link_rewrite;
set @count = @count + 1;
END WHILE;
CLOSE link_rewrite_cursor;
END//
delimiter ;
Мой вопрос: Почему ВЫБРАТЬ link_rewrite всегда возвращает NULL (в прод таблице есть 9000 строк). SELECT link_rewrite FROM prod возвращает много строк (9000 строк).
'SET' не объявляет об этом? –
@ Eric Это делает beacuse select возвращает что-то (в данном случае NULL), поэтому, на мой взгляд, он попадает во время цикла. Да, вы могли бы сделать это намного быстрее, но я пытаюсь изучить курсоры и хранимую процедуру. – PaulP
@PaulP, что 'select link_rewrite от prod limit 10' дает вам? Если это так, то я предполагаю, что у вас есть значения «null» в таблице (независимо от того, сколько строк у вас есть). – Eric