2009-12-08 67 views
1

你能不能做以下w/MySQL的存储过程?/MySQL存储过程:WHERE子句中的变量?

DROP PROCEDURE IF EXISTS `test`; 
DELIMITER // 

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

凡@team(或团队)的变量传递到存储过程?

回答

5

您需要使用:

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 ; 

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

+0

+1赞成格式和专家缩进。我会随时与你一起写代码。 – Langdon 2009-12-08 06:07:00