尝试将列名作为参数传递给mysql

时间:2014-02-26 18:54:46

标签: mysql sql

所以我的表中有一些名为store1,store2等的列。如果我打电话:

call storeinv(1); 

我希望例程能够做到:

select sum(store1) from inventory;

我很难以一种不会被解释为字符串的方式传递列名。有没有人知道这个的解决方法?谢谢。到目前为止,这是我的代码:

DELIMITER $$

CREATE DEFINER=`root`@`localhost` PROCEDURE `storeinv`(store int)

BEGIN
    prepare stmt1 from '(select sum(?) from inventory)';
    set @a = concat('store',store);
    execute stmt1 using @a;
END

1 个答案:

答案 0 :(得分:0)

我认为你不能完全按照自己的意愿行事,但是,以下内容可能有助于假设商店列数有一些限制:

select sum(elt(?,store1,store2,store3,store4,store5...)) from inventory