2012-08-13 74 views
0

我有一個存儲過程,從某個表中進行選擇。該表作爲參數傳遞給過程。 SELECT * FROM ParamName 當我嘗試運行它時,它告訴我是'Table ParamName does not exist。 任何建議,非常感謝?mysql存儲過程和參數

+0

嘗試通過「DataBaseName.TableName」作爲PARAMNAME – DarkFighter 2012-08-13 16:43:46

回答

1

ParamName本身會出現在MySQL中作爲表/字段名稱,這是正確的抱怨。如果Paramname是存儲過程的參數,則必須使用@ParamName來告訴MySQL查找該名稱的變量。

但是,你不能簡單地做

SELECT * FROM @ParamName 

MySQL不允許通過變量指定表/字段名。你必須先準備好一份聲明:

SET @sql=CONCAT('SELECT * FROM ', @ParamName); 
PREPARE s1 FROM @sql; 
EXECUTE s1; 
+0

感謝您的回答。真的很有幫助。 – Diane 2012-08-13 17:00:31