返回顶部
首页 > 资讯 > 数据库 >MYSQL如何实现排名及查询指定用户排名功能
  • 847
分享到

MYSQL如何实现排名及查询指定用户排名功能

2024-04-02 19:04:59 847人浏览 独家记忆
摘要

这篇文章主要介绍了Mysql如何实现排名及查询指定用户排名功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。表结构:CREATE 

这篇文章主要介绍了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 SET utf8
 
COLLATE utf8_general_ci
 
COMMENT = '测试排序'
 
ROW_FORMAT = DYNAMIC;

思路:可以先排序,再对结果进行编号;也可以先查询结果,再排序编号。

说明:

@rownum := @rownum + 1 中 := 是赋值的作用,这句话的意思是先执行@rownum + 1,然后把值赋给@rownum;

(SELECT @rownum := 0) r 这句话的意思是设置rownum字段的初始值为0,即编号从1开始。

实现排名:

方法一:

SELECT t.*, @rownum := @rownum + 1 AS rownum
 
FROM (SELECT @rownum := 0) r, (SELECT * FROM testsort ORDER BY score DESC) AS t;

方法二:

SELECT t.*, @rownum := @rownum + 1 AS rownum
 
FROM (SELECT @rownum := 0) r, testsort AS t
 
ORDER BY t.score DESC;

结果:

MYSQL如何实现排名及查询指定用户排名功能 

查看指定用户排名:

方法一:

SELECT b.* FROM
 
(
 
SELECT t.*, @rownum := @rownum + 1 AS rownum
 
FROM (SELECT @rownum := 0) r,
 
(SELECT * FROM testsort ORDER BY score DESC) AS t
 
) AS b WHERE b.uid = 222;

方法二:

SELECT b.* from
 
(
 
SELECT t.*, @rownum := @rownum + 1 AS rownum
 
FROM (SELECT @rownum := 0) r, testsort AS t
 
ORDER BY t.score DESC
 
) as b where b.uid = 222;

结果:

MYSQL如何实现排名及查询指定用户排名功能

实现并列排名(相同分数排名相同):

SELECT
 
obj.uid,
 
obj.score,
 
CASE
 
WHEN @rowtotal = obj.score THEN
 
@rownum
 
WHEN @rowtotal := obj.score THEN
 
@rownum :=@rownum + 1
 
WHEN @rowtotal = 0 THEN
 
@rownum :=@rownum + 1
 
END AS rownum
 
FROM
 
(
 
SELECT
 
uid,
 
score
 
FROM
 
testsort
 
ORDER BY
 
score DESC
 
) AS obj,
 
(SELECT @rownum := 0 ,@rowtotal := NULL) r

查询指定用户并列排名:

SELECT total.* FROM
 
(SELECT
 
obj.uid,
 
obj.score,
 
CASE
 
WHEN @rowtotal = obj.score THEN
 
@rownum
 
WHEN @rowtotal := obj.score THEN
 
@rownum :=@rownum + 1
 
WHEN @rowtotal = 0 THEN
 
@rownum :=@rownum + 1
 
END AS rownum
 
FROM
 
(
 
SELECT
 
uid,
 
score
 
FROM
 
testsort
 
ORDER BY
 
score DESC
 
) AS obj,
 
(SELECT @rownum := 0 ,@rowtotal := NULL) r) AS total WHERE total.uid = 222;

感谢你能够认真阅读完这篇文章,希望小编分享的“mysql如何实现排名及查询指定用户排名功能”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网数据库频道,更多相关知识等着你来学习!

您可能感兴趣的文档:

--结束END--

本文标题: MYSQL如何实现排名及查询指定用户排名功能

本文链接: https://lsjlt.com/news/56137.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • MYSQL如何实现排名及查询指定用户排名功能
    这篇文章主要介绍了MYSQL如何实现排名及查询指定用户排名功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。表结构:CREATE ...
    99+
    2024-04-02
  • php mysql如何查询排名
    本篇内容主要讲解“php mysql如何查询排名”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php mysql如何查询排名”吧!php mysql查询排名的方法:1、通过SQL语句对所有用户进...
    99+
    2023-06-25
  • springboot如何实现用户名查找用户功能
    本文小编为大家详细介绍“springboot如何实现用户名查找用户功能”,内容详细,步骤清晰,细节处理妥当,希望这篇“springboot如何实现用户名查找用户功能”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。为...
    99+
    2023-07-06
  • Mysql中如何指定顺序排序查询
    小编给大家分享一下Mysql中如何指定顺序排序查询,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!实例如下前端主要用Vue框架,要...
    99+
    2024-04-02
  • springboot实现用户名查找用户功能
    目录1、UserEnetity类2、UserMapper类3、UserService类4、UserController类5、postman测试结果为了实现根据用户名查询用户功能,我们...
    99+
    2023-05-15
    springboot 用户名查找用户 springboot 用户名查找
  • mysql如何实现查询并排序
    本篇内容主要讲解“mysql如何实现查询并排序”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql如何实现查询并排序”吧! 在m...
    99+
    2024-04-02
  • 计算机网络中网站关键词如何查询百度排名及历史排名
    这篇文章将为大家详细讲解有关计算机网络中网站关键词如何查询百度排名及历史排名,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。关键词排名是每个网站赖以生存的基础,尤其是百度排名,更被关注。一个关键词的排名情况...
    99+
    2023-06-10
  • Ajax如何实现异步用户名验证功能
    这篇文章给大家分享的是有关Ajax如何实现异步用户名验证功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。先看看布局比较简单,效果图如下ajax功能:    当用户填写好账号切换到密...
    99+
    2023-06-08
  • 如何用Redis实现排行榜及相同积分按时间排序功能
    本篇内容主要讲解“如何用Redis实现排行榜及相同积分按时间排序功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何用Redis实现排行榜及相同积分按时间排序...
    99+
    2024-04-02
  • 如何使用node.js爬取指定排名网站的JS引用库
    小编给大家分享一下如何使用node.js爬取指定排名网站的JS引用库,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!所用到的nod...
    99+
    2024-04-02
  • AJAX如何实现无刷新检测用户名功能
    这篇文章将为大家详细讲解有关AJAX如何实现无刷新检测用户名功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。先来看看原理图register.php<!DOCTYPE html>&l...
    99+
    2023-06-08
  • 如何利用PHP实现域名重定向功能
    实现域名重定向功能是网站开发中常见的需求之一,通过PHP可以轻松实现这一功能。在本文中,将介绍如何利用PHP实现域名重定向,并给出具体的代码示例。 为什么需要域名重定向功能? 域名重定...
    99+
    2024-04-02
  • Redis如何实现排行榜及相同积分按时间排序功能
    这篇“Redis如何实现排行榜及相同积分按时间排序功能”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来...
    99+
    2024-04-02
  • Angular如何实现内置过滤器orderBy排序与模糊查询功能
    小编给大家分享一下Angular如何实现内置过滤器orderBy排序与模糊查询功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!...
    99+
    2024-04-02
  • 如何用一个sql语句查询出某个学生的姓名、成绩以及在表中的排名
    这篇文章主要讲解了“如何用一个sql语句查询出某个学生的姓名、成绩以及在表中的排名”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何用一个sql语句查询出某...
    99+
    2024-04-02
  • 如何利用报表工具实现排名分析
    排名分析是常见的分析方法,主要是通过排名让使用者了解当前业务维度下数据记录的次序,多用于业绩考核和对比分析。虽然排名的需求看着很简单,但实际操作时会发现有常常并不容易实现,这是因为排名的花样实在不少。今天我就来带大家玩转排名,开外挂分分钟搞...
    99+
    2023-06-05
  • jQuery基于ajax方式如何实现用户名存在性检查功能
    这篇文章给大家分享的是有关jQuery基于ajax方式如何实现用户名存在性检查功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体如下:对于拥有会员功能的网站,尤其是会员登录后...
    99+
    2024-04-02
  • Android如何实现仿银行客户签名功能
    这篇文章将为大家详细讲解有关Android如何实现仿银行客户签名功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。首先需要一个自定义view用来签字使用,可以修改颜色和画笔的粗细,可以擦拭重新画packa...
    99+
    2023-05-31
    android
  • BootStrapz2select2如何实现查询以及输入功能
    小编给大家分享一下BootStrapz2select2如何实现查询以及输入功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!首先...
    99+
    2024-04-02
  • jQuery如何实现Ajax 验证用户名唯一性功能
    这篇文章给大家分享的是有关jQuery如何实现Ajax 验证用户名唯一性功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。JSP部分代码:<%@ page&nbs...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作