Error Code : 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near

报错是因为mysql的procedure里面if else语句里面, 用了begin end语句,去掉了就OK了.

DELIMITER $$

USE `sportgbmj`$$

DROP PROCEDURE IF EXISTS `sp_web_addmiddayrank`$$

CREATE DEFINER=`root`@`%` PROCEDURE `sp_web_addmiddayrank`()
BEGIN
/*
修订记录:
-------------------------------------------------------------------
版本 修订人 修订日期 修订描述
-------------------------------------------------------------------
1.0.0 2013-06-15 查询当前中午12:30-13:30比赛排名
该sp 当前比赛结束后执行
排名先决条件:
1:在一场内必须完满10(含)局以上 -------------------------------------------------------------------
*/
DECLARE i_date DATE ;
DECLARE i_starttime TIME;
DECLARE i_endtime TIME; SET i_date = NOW();
SET i_endtime = NOW(); IF (i_endtime > '22:30') THEN
BEGIN
/* 夜间赛场 */
SET i_starttime = '21:30';
SET i_endtime = '22:30';
END
ELSE
BEGIN
/* 中午场 */
SET i_starttime = '12:30';
SET i_endtime = '13:30';
END
END IF; CREATE TEMPORARY TABLE tmp_rank(
id INT NOT NULL AUTO_INCREMENT -- 自增
,userid INT -- 用户标识
,beans INT -- bean 汇总
,rounds TINYINT -- 局数 汇总
,posttime TIME -- 时间 (该玩家本场比赛最后的时间)
) ENGINE = MYISAM; INSERT INTO tmp_rank (userid,beans,rounds,posttime)
SELECT
userid
,SUM(CASE WHEN consume > 0 THEN consume ELSE 0 END) beans
,COUNT(userid) rounds
,MAX(posttime) AS posttime
FROM
score AS S
INNER JOIN
scorelist AS SL
ON
S.pid = SL.pid
WHERE
roomid IN ('1001') AND (postdate = i_date AND posttime >='12:30:00' AND posttime <='13:30:00')
GROUP BY
userid
HAVING
(rounds >= 10)
ORDER BY
beans DESC
,maxtime ASC
LIMIT 500; /*
插入排名表
*/
INSERT INTO
hf_playranklist (userid,rank,beans,rounds,postdate,posttime)
SELECT
userid,beans,rounds,i_date,posttime
FROM tmp_rank; /*
插入奖品表
*/
INSERT INTO hf_prizelist (userid,STATUS,prizeid,receivetime,postdate)
SELECT
userid
,0
,(CASE WHEN id >= 11 THEN 4
WHEN (id >= 3 AND id <= 10) THEN 3
WHEN id = 2 THEN 2
WHEN id = 1 THEN 1
END) AS prizeid
,beans
,rounds
,posttime
FROM
tmp_rank AS R
WHERE
rank >= 30;
END$$ DELIMITER ;

MySQL 存储过程例子,不能在if else里面用begin end否则会报错Error Code : 1064!的更多相关文章

  1. Mysql报错Error Code: 1175. You are using safe update

    使用MySQL执行update的时候报错:Error Code: 1175. You are using safe update mode and you tried to update a tabl ...

  2. CentOS命令登录MySQL时,报错ERROR 1045 (28000):

    CentOS命令登录MySQL时,报错ERROR 1045 (28000): Access denied for user root@localhost (using password: NO)错误解 ...

  3. mysql报错"ERROR 1206 (HY000): The total number of locks exceeds the lock table size"的解决方法

    1. 问题背景         InnoDB是新版MySQL(v5.5及以后)默认的存储引擎,之前版本的默认引擎为MyISAM,因此,低于5.5版本的mysql配置文件.my.cnf中,关于InnoD ...

  4. MySQL报错ERROR 1558 (HY000): Column count of mysql.user is wrong.

    MySQL报错ERROR 1558 (HY000): Column count of mysql.user is wrong. 1.今天在使用MySQL创建数据库时出现如下报错: mysql> ...

  5. 解决MySQL报错ERROR 2002 (HY000)【转】

    今天在为新的业务线搭架数据库后,在启动的时候报错 root@qsbilldatahis-db01:/usr/local/mysql/bin# ./mysql ERROR 2002 (HY000): C ...

  6. 第一次登录mysql,使用任何命令都报错ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

    问题: 使用临时密码登录成功后,使用任何myql命令,例如show databases;都提示下面的报错 ERROR 1820 (HY000): You must reset your passwor ...

  7. MySQL查询报错 ERROR: No query specified

    今天1网友,查询报错ERROR: No query specified,随后它发来截图. root case:查询语法错误 \G后面不能再加分号;,由于\G在功能上等同于;,假设加了分号,那么就是;; ...

  8. 【MySQL笔记】mysql报错"ERROR 1206 (HY000): The total number of locks exceeds the lock table size"的解决方法

    step1:查看 1.1 Mysql命令行里输入"show engines:"查看innoddb数据引擎状态, 1.2 show variables "%_buffer% ...

  9. 【mysql】 load local data infield 报错 ERROR 1148 (42000): The used command is not allowed with this MySQL version

    mysql> load data local infile '/Users/flint/learn/mysql/pet' into table bx_pet; 执行报错 ERROR 1148 ( ...

随机推荐

  1. 自己设计的SSO登录流程图

    这个图上不考虑安全加密.由于本身SSO流程图已经比較复杂了.可能还有问题,欢迎大家拍砖. 1.登录流程图: 2.退出流程图: 3.改进方面: 每一个应用登录后.直接将ticket写入session中, ...

  2. busybox 致命错误: curses.h:没有那个文件或文件夹

    $:~/dd/busybox-1.19.3$ make menuconfig   HOSTCC  scripts/basic/fixdep   HOSTCC  scripts/basic/split- ...

  3. Asp.Net中GridView加入鼠标滑过的高亮效果和单击行颜色改变

    转载自:http://www.cnblogs.com/fly_dragon/archive/2010/09/03/1817252.html protected void GridView1_RowDa ...

  4. Cocos Studio和Cocos2d-x版本对应关系

    链接地址:http://www.cocoachina.com/bbs/read.php?tid=182077 可以在cocos2d.cpp中查看2d-x的版本信息.   版本对应列表: Studio2 ...

  5. C# 使用IENUMERABLE,YIELD

    C# 使用IENUMERABLE,YIELD 前言 在上篇文章中我得出结论,遍历迭代器修改迭代器中项目的值未生效,是因为使用了yield return,并且每次遍历迭代器都执行返回迭代器的方法.这篇文 ...

  6. MongoDB导出-导入-迁移

    linux环境下,将mongodb迁移到同机器,不同端口上. 命令参数: [mongodb@pera bin]$ ./mongodump --help Export MongoDB data to B ...

  7. Ch02 从零开始实例学习4

    演练2-4  添加视图 原文链接:http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/adding-a-vi ...

  8. javascript笔记整理(回调、递归、内置顶层函数)

    1.回调函数(通过函数的指针来调用函数,把一个函数的指针做为另一个函数的参数,当调用这个参数的时候,这个函数就叫做回调函数) a.通过指针来调用 function aa(a,b,fun){ retur ...

  9. C++中数字与字符串之间的转换(使用CString.Format或者sprintf)

    1.字符串数字之间的转换 (1)string --> char *   string str("OK");   char * p = str.c_str(); (2)char ...

  10. 终于懂了:Delphi重定义消息结构随心所欲,只需要前4个字节是消息编号就行了(有了这个,就有了主动)

    Delphi重定义消息结构随心所欲,只需要前4个字节是消息编号就行了,跟Windows消息虽然尽量保持一致,但其实相互没有特别大的关系.有了这个,就有了主动,带不带句柄完全看需要. 比如这个结构就带句 ...