tôi đang học thủ tục lưu trữ, con trỏ trong mysql và tôi vấp ngã trên đó:Rõ ràng lấy trả về 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 ;
Câu hỏi của tôi là: Tại sao CHỌN link_rewrite luôn trả về NULL (trong bảng prod có 9000 dòng). SELECT link_rewrite FROM prod trả về rất nhiều hàng (9000 hàng).
'SET' không khai báo? –
@Eric Nó beacuse chọn trả về một cái gì đó (trong trường hợp này NULL) vì vậy theo ý kiến của tôi nó lượt truy cập trong khi vòng lặp. Yea bạn có thể làm điều đó nhanh hơn nhiều nhưng tôi đang cố gắng tìm hiểu con trỏ và thủ tục lưu trữ. – PaulP
@PaulP, những gì hiện 'chọn link_rewrite từ giới hạn prod 10' cung cấp cho bạn? Nếu đó là trường hợp, thì tôi đoán là bạn có các giá trị 'null' trong bảng (bất kể bạn có bao nhiêu hàng). – Eric