MySql 统计排名

例子:

SET @ranking=0;

select *,@ranking:[email protected]+1 AS `ranking` from table ORDER BY `members` DESC;

1. 先给用户变量 @ranking 赋值,mysql中用户变量以@开头,不用事先申明;

2. 然后按照某字段排序,返回字段中增加 如下代码:

@ranking:[email protected]+1

这样查询的结果中就包含 ranking 字段,表示当前排名。

遇到的问题:

1. 执行语句提示语法错误,分开执行就不会出错。

2. 数据分页

SET @ranking=当前第几页 * 每页数量;

3. 某条记录的排名

SET @ranking=0;

select * from (select *,@ranking:[email protected]+1 AS `ranking` from table ORDER BY `members` DESC) as result where result.id = 17;

以上均为优化;

时间: 2024-10-09 07:33:41

MySql 统计排名的相关文章

PHP+mysql统计排名第几位

正在开发积分系统!其中有一项数据是显示用户积分排名?一下子想不到太好的办法! 最简的情况是统一某一字段的积分数据排名?比如积分字段,里面存的整数! 如何排名?或者说如何获得他在排序中的序列位次呢? select count(*) + 1 AS rank from `users` where number > (select `number` from `users` where openid= 'otf-gjrF-nT1cf2W8MHrpPZ2arVQ') 算第排名第几位 select coun

实战:mysql统计指定架构的所有表的数据和索引大小情况

#统计指定架构的所有表的数据和索引大小情况 #tablesize.sh #!/bin/sh #[email protected] if [ "$#" -gt 2 ];then echo "**********************************" echo "too many input parameters" echo "**********************************" echo "

mysql计算排名

mysql计算排名,获取行号rowno 学生成绩表数据 SELECT * FROM table_score ORDER BY score DESC; 获取某个学生成绩排名并计算该学生和上一名学生成绩差,是并列排名 SELECT *, (SELECT count(DISTINCT score) FROM table_score AS b WHERE a.score<b.score)+1 AS rank, #获取排名,并列 (SELECT b.score FROM table_score AS b

mysql查询排名

student_work表 student_info表 sql语句:按grade从高到低排名 结果: mysql查询排名

MySQL实现排名并查询指定用户排名功能,并列排名功能

MySQL实现排名并查询指定用户排名功能,并列排名功能 表结构: CREATE TABLE test.testsort ( id int(11) NOT NULL AUTO_INCREMENT, uid int(11) DEFAULT 0 COMMENT '用户id', score decimal(10, 2) DEFAULT 0.00 COMMENT '分数', PRIMARY KEY (id) ) ENGINE = INNODB AUTO_INCREMENT = 1 CHARACTER SE

MySQL统计信息查询慢问题分析

起因 在MySQL服务器运行mysqld_exporter后,发现数据库的中活跃连接数暴增,而且都是来自于mysqld_exporter的慢查询,语句如下: SELECT TABLE_SCHEMA, TABLE_NAME, TABLE_TYPE, ifnull(ENGINE, 'NONE') as ENGINE, ifnull(VERSION, '0') as VERSION, ifnull(ROW_FORMAT, 'NONE') as ROW_FORMAT, ifnull(TABLE_ROWS

PHP+Mysql统计文件下载次数实例

PHP+Mysql统计文件下载次数实例,实现的原理也很简单,是通过前台点击链接download.php传参id,来更新点击次数. 获取文件列表: <?php require 'conn.php'; $query = mysql_query("SELECT * FROM downloads"); $lists = array(); while ($row = mysql_fetch_assoc($query)) { $lists[] = $row; } ?> 读取文件列表,并

使用MySQL统计页面访问及排名

统计访问页面数量,以分辨率进行排名 SELECT CONCAT(`height` , '*', `width`) AS `resolution` , COUNT(CONCAT(`height`, '*', `width`)) AS `total` FROM `wifi_status_page` GROUP BY CONCAT(`height`, '*', `width`) ORDER BY `total` DESC LIMIT 0 , 30 最近7天页面访问量,每日统计数量,以日期为序 SELE

mysql统计一张表中条目个数的方法

统计一张表中条目的个通常的SQL语句是: select count(*) from tableName; #or select count(1) from tableName; #or 统计一个列项,如ID select count(ID) 另外,可通过使用information_schema统计个数 MySQL中有一个名为 information_schema 的数据库,在该库中有一个 TABLES 表,这个表主要字段分别是: TABLE_SCHEMA : 数据库名 TABLE_NAME:表名