mysql 5.1存储过程限制变量

时间:2014-01-27 09:15:48

标签: mysql sql stored-procedures

我在托管的mysql v-5.1中执行此proc时遇到问题。我找不到问题或错误。请帮帮我。

DROP PROCEDURE IF EXISTS `fetchTimeLine`;;    
CREATE PROCEDURE `fetchTimeLine`(IN `delim` int(10))    
BEGIN    
PREPARE STMT FROM     
" SELECT event_id as event,date,schedule,venue,members,descr,about,    
(SELECT src FROM photo WHERE event_id=event LIMIT 0,1) as photo1,    
(SELECT src FROM photo WHERE event_id=event LIMIT 1,1) as photo2,    
(SELECT src FROM photo WHERE event_id=event LIMIT 2,1) as photo3,    
(SELECT scr_shoot FROM videos WHERE event_id=event LIMIT 0,1) as video1,    
(SELECT scr_shoot FROM videos WHERE event_id=event LIMIT 1,1) as video2,    
(SELECT scr_shoot FROM videos WHERE event_id=event LIMIT 2,1) as video3,    
(SELECT src FROM videos WHERE event_id=event LIMIT 0,1) as vsrc1    
FROM activities    
ORDER BY date desc LIMIT ?,?; ";     

SET @START = delim;    
SET @LIMIT = 2;    
EXECUTE STMT USING @START, @LIMIT;    
DEALLOCATE PREPARE STMT;    

END;;    

错误我得到了:

  

1064 - 您的SQL语法出错;检查与MySQL服务器版本对应的手册,以获得正确的语法   靠近''第4行

1 个答案:

答案 0 :(得分:0)

在MySQL中,date是保留字,而
你在SELECT子句中有它。试试

`date` 

代替。

在ORDER BY子句中应用相同的更改。