2014-04-29 23 views
0
執行語句程序

我試圖創建和使用此過程:串聯並在MySQL

delimiter // 
CREATE PROCEDURE doiterate(p1 INT) 
BEGIN 
DECLARE str VARCHAR(5000); 
label1: LOOP 

SET @query = 'SELECT * FROM '; 

IF p1 > 0 THEN 

SET @query = CONCAT(@query, ' wp_', pl, '_options,'); 
ITERATE label1; 
END IF; 
LEAVE label1; 
END LOOP label1; 

SET @query = substring(@query,1,length(@query)-1); 

SET @query = CONCAT(@query, ' WHERE option_name = \'template\'OR option_name = \'stylesheet\' OR option_name = \'current_theme\''); 

PREPARE stmt FROM @query; 

EXECUTE stmt; 

END// 

,當我執行它,我得到這個消息:

未知列「PL」在「字段列表'

任何人都可以指出我在哪裏做錯了?

回答

0

你在你的代碼一個錯字:不是 「P1」

SET @query = CONCAT(@query, ' wp_', pl, '_options,'); 

應該

SET @query = CONCAT(@query, ' wp_', p1, '_options,'); 

您曾用 「PL」(大寫強調);