【问题标题】:mysql 5.1 stored procedure limit variablemysql 5.1 存储过程限制变量
【发布时间】:2014-01-27 09:15:47
【问题描述】:

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

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 行的 '' 附近

【问题讨论】:

  • 欢迎大家手动调试stackoverflow。你得到什么错误?
  • #1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取正确的语法,以便在第 4 行的 '' 附近使用
  • 问题已解决。 thnx 快速回复和努力。可能是分隔符问题。

标签: mysql sql stored-procedures


【解决方案1】:

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

`date` 

改为。

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

【讨论】:

  • 运气不好。仍然得到错误 #1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 4 行的 '' 附近使用正确的语法
  • 感谢您的努力。它现在运行。可能是分隔符问题。
猜你喜欢
  • 1970-01-01
  • 2012-04-09
  • 2011-06-16
  • 2012-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-02
相关资源
最近更新 更多