日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql if begin end_MySQL存储过程例子,不能在if else里面用begin end否则会报错Erro_MySQL...

發布時間:2024/1/23 数据库 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql if begin end_MySQL存储过程例子,不能在if else里面用begin end否则会报错Erro_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

相關標簽:

本文原創發布php中文網,轉載請注明出處,感謝您的尊重!

總結

以上是生活随笔為你收集整理的mysql if begin end_MySQL存储过程例子,不能在if else里面用begin end否则会报错Erro_MySQL...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。