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

标签 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'

最佳答案

您已将其标记为 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');

关于mysql存储过程,使用列名作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14389973/

相关文章:

mysql - 如果其他 2 列相等则更新

php - LEFT 加入在一页中工作,但不在另一页中工作

mysql - 使用mysql更新具有父子关系的同一个表的列名

mysql - 对查询结果进行分组以获得这种格式

MySQL 备份不适用于 cronjob

mysql - 错误代码 : 1215. 无法添加外键约束

mysql - 选择满足不同记录中许多条件的列

javascript - 在选择下拉列表中选择特定选项时添加输入框

oracle - 不能使用分数作为 oracle 中过程的参数

sql - 如何使用sql表值参数来过滤结果?