簡體   English   中英

試圖在MySQL中將列名作為參數傳遞

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM