`
JadeLuo
  • 浏览: 425725 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

mysql 游标 排名

 
阅读更多
CREATE DEFINER=`root`@`192.168.1.%` PROCEDURE `paimin`()
BEGIN
	DECLARE
		zan1 INT DEFAULT 1;

DECLARE
	cai1 INT DEFAULT 1;

DECLARE
	ping1 INT DEFAULT 1;

DECLARE
	fen1 INT DEFAULT 1;

DECLARE
	shan1 INT DEFAULT 1;

DECLARE
	bzan INT DEFAULT 1;

DECLARE
	bcai INT DEFAULT 1;

DECLARE
	bping INT DEFAULT 1;

DECLARE
	bfen INT DEFAULT 1;

DECLARE
	bshan INT DEFAULT 1;

DECLARE
	Done INT DEFAULT 0;

DECLARE
	CurrentPaiMing INT DEFAULT 0;

DECLARE
	ZUBOID VARCHAR (6);

DECLARE
	ZUBOGOLD INT DEFAULT 0;

DECLARE
	ud_row VARCHAR (6);

DECLARE
	paimin_row INT DEFAULT 0;

DECLARE
	rs2 CURSOR FOR SELECT
		ud,
		zan,
		cai,
		ping,
		fen,
		shan,
		(
			zan * 1 - cai * 1 + ping * 1 + fen * 1 + shan * 1
		) paimin
	FROM
		lfsj_sort_user_info;

/* 声明游标 */
DECLARE
	rs CURSOR FOR SELECT
		ZID,
		GOLD
	FROM
		(
			SELECT
				ZID,
				SUM(GOLD) GOLD
			FROM
				T_ANCHOR_GAINS
			GROUP BY
				ZID
		) A
	ORDER BY
		GOLD DESC;

/* 异常处理 */
DECLARE
	CONTINUE HANDLER FOR SQLSTATE '02000'
SET Done = 1;

/* 打开游标 */
OPEN rs;

/* 逐个取出当前记录LingQi字段的值,需要进行最大值的判断 */
FETCH NEXT
FROM
	rs INTO ZUBOID,
	ZUBOGOLD;

/* 遍历数据表 */
REPEAT

IF NOT Done THEN

SET CurrentPaiMing = CurrentPaiMing + 1;

UPDATE t_user_info
SET RANKING = CurrentPaiMing
WHERE
	ID = ZUBOID;

UPDATE lfsj_sort_user_info
SET shan = ZUBOGOLD
WHERE
	ud = ZUBOID;


END
IF;

FETCH NEXT
FROM
	rs INTO ZUBOID,
	ZUBOGOLD;

UNTIL Done
END
REPEAT
;

/* 关闭游标 */
CLOSE rs;

/* 声明游标 */
/* 异常处理 */
-- DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET Done2 = 1;
UPDATE t_user_info
SET RANKING = 0;

SET Done = 0;

/* 打开游标 */
OPEN rs2;

/* 逐个取出当前记录LingQi字段的值,需要进行最大值的判断 */
FETCH NEXT
FROM
	rs2 INTO ud_row,
	bzan,
	bcai,
	bping,
	bfen,
	bshan,
	paimin_row;


/* 遍历数据表 */
REPEAT

IF NOT Done THEN
	UPDATE t_user_info a
SET a.RANKING = paimin_row,
 a.SNUM = concat(
	'{"cai":"',
	bcai,
	'"cai":"',
	bcai,
	'","fen":',
	bfen,
	'","ping":',
	bping,
	'","shan":',
	bshan,
	'"}'
)
WHERE
	a.ID = ud_row;

INSERT INTO `kwc`.`cc` (`id`) VALUES ('aa' );


INSERT INTO `kwc`.`cc` (`id`) VALUES (concat(
	'{"cai":"',
	bcai,
	'"cai":"',
	bcai,
	'","fen":',
	bfen,
	'","ping":',
	bping,
	'","shan":',
	bshan,
	'"}'
) );

END
IF;

FETCH NEXT
FROM
	rs2 INTO ud_row,
	bzan,
	bcai,
	bping,
	bfen,
	bshan,
	paimin_row;

UNTIL Done
END
REPEAT
;

/* 关闭游标 */
CLOSE rs2;


END

 

分享到:
评论

相关推荐

    基于python的学生管理系统(附代码,完美运行).pdf

    `connect()`函数用于建立数据库连接,`cursor()`创建游标对象,`execute()`执行SQL语句,`commit()`提交事务,`fetchall()`获取所有查询结果,最后通过`close()`关闭游标和数据库连接。 3. 数据库设计:系统设计了...

    16219111407_姚周晖_爬虫期中作业1

    3. `get_info`函数:遍历所有电影信息,使用正则表达式提取电影排名(num)、电影名称(name)和角色信息(charactor)。数据被整理成字典格式,并插入到数据库的'doubantop'表中。 4. 主程序部分:首先调用`connect...

    C++/Java/C#/SQL 面试题 答案

    - Oracle:PL/SQL、存储过程、触发器、游标、索引类型、表分区、数据库性能调优。 - MySQL:InnoDB引擎、事务处理、分区、性能优化(如慢查询日志、索引优化)。 通过深入学习并理解以上知识点,无论是在面试还是...

    深入探究MongoDB:从基础到实战,一个全面的指南

    MongoDB还提供了一些高级特性,如文档游标和投影,这些特性使得数据处理更为高效和灵活。 MongoDB的非关系型特性使其与传统的关系型数据库有所区别,如MySQL或PostgreSQL。在关系型数据库中,数据通常遵循严格的第...

    SQL知识点汇总

    SQL(Structured Query Language)是用于管理和操作关系数据库的标准语言,其功能强大且广泛应用于各种数据库系统,如MySQL、Oracle、SQL Server等。本知识点汇总将深入探讨SQL的基础和高级概念,帮助你掌握全面的...

    Python_BeautifulSoup_豆瓣周榜_爬取

    首先,使用pymysql库连接到本地MySQL服务器,并创建一个游标对象以执行SQL命令。然后,定义了一个SQL插入语句,将爬取到的数据插入到名为db的表中。在尝试执行SQL时,使用try-except结构处理可能的异常,如果执行...

    SQL语法大全中文版

    SQL(Structured Query Language)是用于管理和处理关系数据库的标准语言,其功能强大且广泛应用于各种数据库系统,如MySQL、Oracle、SQL Server等。本资源“SQL语法大全中文版”旨在为学习者提供一个全面的SQL学习...

    SQL 笔试题

    - **RDBMS**: 关系型数据库管理系统(Relational Database Management System),是一种基于关系模型的数据库管理系统,如MySQL、Oracle、SQL Server等。 - **GRANT & REVOKE**: 这两个SQL命令用于管理数据库权限。`...

    超详细Oracle教程

    - **Oracle与SUN合并的战略意义**:2009年Oracle收购SUN,这一举动不仅加强了Oracle在数据库领域的领导地位,还为其带来了SUN的强大硬件支持,包括服务器资源及开源数据库MySQL。此次合并有助于Oracle拓展市场,特别...

    oracle教材简单易学

    - **分区函数**: 如`RANK`, `DENSE_RANK`, `ROW_NUMBER`等,用于对查询结果进行排名和编号。 #### 三、数据库管理与优化 - **数据字典** - **系统视图**: Oracle提供了许多内置的视图,如`V$SESSION`, `V$...

    SQL

    SQL的设计目的是用于处理关系数据库管理系统(RDBMS),如MySQL、Oracle、SQL Server、PostgreSQL等。它的主要功能包括数据查询、数据更新(插入、修改、删除)、数据定义(创建、修改、删除数据库表结构)以及数据...

    超详细ORACLE培训带实例带书签目录

    - **RANK、DENSE_RANK和ROW_NUMBER**:行排名函数的使用方法。 - **窗口函数**:OVER子句的使用,包括LAG、LEAD等。 - **分区函数**:PARTITION BY子句的使用。 #### 第九章 数据字典 - **数据字典概述**:Oracle...

    Python Cookbook

    5.14 给字典类型增加排名功能 210 5.15 根据姓的首字母将人名排序和分组 214 第6章 面向对象编程 217 引言 217 6.1 温标的转换 223 6.2 定义常量 225 6.3 限制属性的设置 227 6.4 链式字典查询 229 6.5 ...

    超详细Oracle教程.pdf

    - **窗口函数**:如ROW_NUMBER()、RANK()、DENSE_RANK()等,用于在查询结果集中执行排名操作。 - **集合操作**:例如UNION、INTERSECT、MINUS等,用于组合多个查询结果集。 #### 十、数据字典 - **数据字典简介**:...

    SQL问题集

    28. **SQL标准与方言**:虽然SQL有标准,但每个数据库系统都有自己的方言,如MySQL、PostgreSQL、Oracle和SQL Server等,理解这些差异很重要。 以上是基于Wright博士的SQL问题集可能涵盖的28个知识点的详细解析,...

Global site tag (gtag.js) - Google Analytics