所以我的表中有一些名为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
答案 0 :(得分:0)
我认为你不能完全按照自己的意愿行事,但是,以下内容可能有助于假设商店列数有一些限制:
select sum(elt(?,store1,store2,store3,store4,store5...)) from inventory