[英]Trying to pass a column name as a parameter in mysql
所以我的表中有名為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
我認為您無法完全按照自己的意願進行操作,但是,假設存儲列的數量受到限制,以下內容可能會有所幫助:
select sum(elt(?,store1,store2,store3,store4,store5...)) from inventory
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.