最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

MySQL存储过程例子,不能在ifelse里面用beginend否则会报错Erro_MySQL

来源:懂视网 责编:小采 时间:2020-11-09 18:37:58
文档

MySQL存储过程例子,不能在ifelse里面用beginend否则会报错Erro_MySQL

MySQL存储过程例子,不能在ifelse里面用beginend否则会报错Erro_MySQL:bitsCN.com MySQL存储过程例子,不能在if else里面用begin end否则会报错Error Code:1064解决 Error Code : 1064You have an error in your SQL syntax; check the manual that corresponds to your MySQL
推荐度:
导读MySQL存储过程例子,不能在ifelse里面用beginend否则会报错Erro_MySQL:bitsCN.com MySQL存储过程例子,不能在if else里面用begin end否则会报错Error Code:1064解决 Error Code : 1064You have an error in your SQL syntax; check the manual that corresponds to your MySQL

bitsCN.com

MySQL存储过程例子,不能在if else里面用begin end否则会报错Error Code:1064解决

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了.

[sql]

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 ;

bitsCN.com

文档

MySQL存储过程例子,不能在ifelse里面用beginend否则会报错Erro_MySQL

MySQL存储过程例子,不能在ifelse里面用beginend否则会报错Erro_MySQL:bitsCN.com MySQL存储过程例子,不能在if else里面用begin end否则会报错Error Code:1064解决 Error Code : 1064You have an error in your SQL syntax; check the manual that corresponds to your MySQL
推荐度:
标签: 里面 例子 end
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top