DROP PROCEDURE IF EXISTS STUDENTS_BY_STATUS;
DELIMITER //
CREATE PROCEDURE STUDENTS_BY_STATUS(status VARCHAR(10))
BEGIN
SELECT BannerId, Name FROM STUDENT WHERE Status=status;
END //
DELIMITER ;
CALL STUDENTS_BY_STATUS("Freshman");
我的结果
答案 0 :(得分:4)
使用其他名称调用参数,因为表中的列名为status。
我通常遵循参数的p_
前缀和局部变量的v_
惯例。
CREATE PROCEDURE STUDENTS_BY_STATUS(p_status VARCHAR(10))
BEGIN
SELECT BannerId, Name FROM STUDENT WHERE Status = p_status;
END //
答案 1 :(得分:3)
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使用不同的名称。