1
我有一個存儲過程,它已經被執行而沒有任何錯誤,但給了我一個錯誤「#1054:未知列'templateName'where子句」何時我運行它。使用存儲過程時where子句中的未知列'模板'
存儲過程是:
delimiter //
DROP PROCEDURE `getData`//
CREATE DEFINER=`root`@`localhost` PROCEDURE `getData`(IN templateName VARCHAR(45),IN templateVersion VARCHAR(45),IN userId VARCHAR(45))
BEGIN
set @version = CONCAT("SELECT 'saveOEMsData_answersVersion' FROM `saveOEMsData` where 'saveOEMsData_templateName' = ",templateName," and 'saveOEMsData_templateVersion' = ",templateVersion," and 'saveOEMsData_userId'= ",userId);
PREPARE s1 from @version;
EXECUTE S1;
END
//
delimiter ;
現在我把它用call getData('templateName','1','285');
。每當我打電話時,我都會遇到提及的錯誤。問題是什麼?它肯定是語法的,我一直在閱讀mysql手冊2天,並沒有出來!
任何幫助將是偉大的!由於
ok我必須使用正在使用select語句進行retreived的「saveOEMsData_answersVersion」的值。我必須將它用於IF LOOP,這怎麼可能? \t組@version = CONCAT( 「選擇 'saveOEMsData_answersVersion' FROM'saveOEMsData'其中saveOEMsData_templateName = '」,TEMPLATENAME, 「' 和saveOEMsData_templateVersion =」,templateVersion 「和saveOEMsData_userId =」,用戶id, 「GROUP BY'saveOEMsData_templateName'」 ); \t從@version準備S1; \t EXECUTE S1; \t IF(S1 == 1)THEN select'one'; \t否則選擇'零'; \t END IF; 我收到錯誤時,我這樣做? – sai 2010-04-19 21:46:36
你正在混合你的報價;我更新了答案,清理了我能看到的東西。嘗試理解過程的語法並通過更簡單的示例進行工作。 – Unreason 2010-04-19 23:00:55