mysql存储过程,使用列名作为参数

时间:2013-01-17 23:22:20

标签: mysql select stored-procedures prepared-statement

我这里有一个包含3个字段的磁带表:

胶带

  TapesID      Title       Qty

     T1     BatDog         3

     T2    UnderCat        2

     T3    IronMouse       1

     T4    Boys Zone       1

     T5    RoboCat         1

我想创建一个存储过程,通过输入磁带标题作为过程的参数来提取并显示磁带的特定id。该过程应称为list_tspec_id。

你可以帮助我吗?我很难用这个...

这是我的代码,但它不对:

create procedure tapesid
@columnname varchar
AS
begin
select @columnname from tapes
end 
exec tapesid 'title'

1 个答案:

答案 0 :(得分:1)

您已将此标记为MySQL,因此......这是一个存储过程,但您的示例中不清楚您真正想要它做什么或为什么。

作为参数传递到存储过程的变量不会在它们前面使用“@”。

DELIMITER $$

CREATE PROCEDURE list_tspec_id (IN my_title VARCHAR(254))
BEGIN

  SELECT TapesID, Title, Qty FROM Tapes WHERE Title = my_title;

END $$
DELIMITER ;

...然后

mysql> CALL list_tspec_id('BatDog');