【问题标题】:MySQL stored procedure: variable in WHERE clause?MySQL存储过程:WHERE子句中的变量?
【发布时间】:2026-02-09 23:20:02
【问题描述】:

你不能用 MySQL 存储过程执行以下操作吗?/

DROP PROCEDURE IF EXISTS `test`;
DELIMITER //

CREATE PROCEDURE TEST (team varchar(30))
BEGIN
    SELECT * FROM TEAMS WHERE TEAM_ID = @team;
END
//

@team(或团队)在哪里传递给存储过程的变量?

【问题讨论】:

    标签: sql mysql stored-procedures parameters


    【解决方案1】:

    你需要使用:

    DROP PROCEDURE IF EXISTS `test`;
    DELIMITER //
    
    CREATE PROCEDURE TEST (IN_TEAM_ID varchar(30))
    BEGIN
    
        SELECT t.* 
          FROM TEAMS t
         WHERE t.team_id = IN_TEAM_ID;
    
    END //
    
    DELIMITER ;
    

    引用存储过程参数时没有@符号。

    【讨论】:

    • +1 用于专业格式和专家缩进。我会随时和你一起写代码。