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 ;
이 답변은 첫 번째 행만 반환합니다. 모든 행을 반환하는 방법을 알고 있습니까? – Shane
당신은'선택 UID, 패스워드 인증에서 WHERE CHARACTER_length (Password)> passwordLength;'쿼리 결과는 phpmyadmin? –
예 (부수적으로 나는
Shane