Почему моя процедура SQL возвращает всю таблицу?
2 ответа
Решение
Назовите ваш параметр с другим именем, так как в вашей таблице есть столбец с именем status.
Я обычно следую условию p_
префикс для параметров и v_
для локальных переменных.
CREATE PROCEDURE STUDENTS_BY_STATUS(p_status VARCHAR(10))
BEGIN
SELECT BannerId, Name FROM STUDENT WHERE Status = p_status;
END //
DROP PROCEDURE IF EXISTS STUDENTS_BY_STATUS;
DELIMITER //
CREATE PROCEDURE STUDENTS_BY_STATUS(IN statusIn VARCHAR(10))
BEGIN
SELECT BannerId, Name FROM STUDENT WHERE Status=statusIn;
END //
DELIMITER ;
Отметьте его как IN param и используйте другое имя для param.