0
所以我在我的表中有名爲store1,store2等的列。如果我打這個電話:嘗試傳遞列名作爲參數在mysql中
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
如何發送整個查詢作爲過程參數,如: CREATE DEFINER ='root' @ localhost'程序'storeinv'(查詢VARCHAR(1024)) 並使用它,從'(query)'準備stmt1; – avisheks
所以你的表中有名爲'store1''' store2'等的列? – 2014-02-26 19:26:07
avisheks我不確定你的意思是使用查詢作爲參數。所以當我打電話給我的程序,我會
call storeinv(select sum(store1) from inventory)
? @VladimirOselsky是的,沒錯。該功能的目的是選擇給定列的總和 – user3357302