0
我有一個存儲過程,從某個表中進行選擇。該表作爲參數傳遞給過程。 SELECT * FROM ParamName 當我嘗試運行它時,它告訴我是'Table ParamName does not exist。 任何建議,非常感謝?mysql存儲過程和參數
我有一個存儲過程,從某個表中進行選擇。該表作爲參數傳遞給過程。 SELECT * FROM ParamName 當我嘗試運行它時,它告訴我是'Table ParamName does not exist。 任何建議,非常感謝?mysql存儲過程和參數
ParamName
本身會出現在MySQL中作爲表/字段名稱,這是正確的抱怨。如果Paramname是存儲過程的參數,則必須使用@ParamName
來告訴MySQL查找該名稱的變量。
但是,你不能簡單地做
SELECT * FROM @ParamName
MySQL不允許通過變量指定表/字段名。你必須先準備好一份聲明:
SET @sql=CONCAT('SELECT * FROM ', @ParamName);
PREPARE s1 FROM @sql;
EXECUTE s1;
感謝您的回答。真的很有幫助。 – Diane 2012-08-13 17:00:31
嘗試通過「DataBaseName.TableName」作爲PARAMNAME – DarkFighter 2012-08-13 16:43:46