int 値を渡して、この int より小さい短いパスワードのリストを取得したいと考えています。MySQL カーソルの例を変更するのに問題がありました: http://dev.mysql.com/doc/refman/5.0/en/cursors.html。短いパスワードで行を印刷したいのですが、結果に複数の行がある場合はいつでも PhpMyAdmin は「リクエストを処理しています」と無期限に表示します。私は何を間違っていますか?土曜日の生産性が台無しです!
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `ShortPasswd`(IN `passwordLength` TINYINT)
BEGIN
DECLARE done INT DEFAULT FALSE;
DECLARE a INT;
DECLARE b VARCHAR(255);
DECLARE cur1 CURSOR FOR SELECT UID, Password
FROM authentication WHERE CHARACTER_length(Password) < passwordLength;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
OPEN cur1;
read_loop: LOOP
FETCH cur1 INTO a, b;
IF done THEN
LEAVE read_loop;
END IF;
SELECT b;
END LOOP;
CLOSE cur1;
END
$$
DELIMITER ;