mysql实现排行榜
来源:互联网 发布:蛋白质组学数据分析 编辑:程序博客网 时间:2024/04/28 02:49
博主新人一枚,大家可以提出自己的宝贵意见。
下来我们进入正题。
前两天在给app写接口时,需要实现一个排行榜的业务。当然我们首先要了解排行榜的业务需求是什么,其次才是接口实现,不能像我一样,走了不少的弯路。
大家首先要了解接口的场景,再就是排行榜的规则,我们这里说的中国式排行榜。
排行榜总结了一下分为3种:
中国式排行: 非中国式排行1: 非中国式排行2:
1; 1; 1;
2; 2; 2;
2; 2; 3;
3; 4; 4;
3; 5; 5;
4; 5; 6;
5; 7; 7;
SELECT
user_id,
@position :=
IF (
@previous = good_bad_num,
@position,
@position + 1
) AS position ,@previous := good_bad_num
FROM
(
SELECT
user_id,
good_bad_num
FROM
v_praise_user
where office_id = everyoffice
ORDER BY
good_bad_num DESC
) d,
(
SELECT
@previous := - 1,
@position := 0
) AS s
其实SQL原理很简单,做过jsp页面的合并表格的都清楚,定义两个变量,一个控制状态,另一个进行业务。
SELECT
user_id,
good_bad_num
FROM
v_praise_user
where office_id = everyoffice
ORDER BY
good_bad_num DESC
这段主要是对v_praise_user表的good_bad_num 倒序排列,获取结果集。
SELECT
@previous := - 1,
@position := 0
必要需要的初始化,如果不经心初始化,初次查询会出现错误。
IF (
@previous = good_bad_num,
@position,
@position + 1
)
这段sql是这个排序的核心,一个IF判断语句,结合变量使用,实现排行业务。
@定义用户变量,只能在mysql数据库端执行,所以需要在数据库端用function或者存储过程来进行调用。
第一次写博文,望轻喷。
欢迎大家讨论。
- mysql实现排行榜
- mysql 排行榜函数
- java mysql 排行榜
- mysql 排行榜计算排名
- 排行榜数据结构实现
- Egret实现滚动排行榜
- 游戏排行榜的实现
- Unity注册表实现排行榜
- redis实现搜索排行榜后记
- 类似排行榜需求的实现
- Unity3D 实现本地排行榜功能
- Unity3D GameCenter 排行榜, 成就实现
- 使用 Redis 实现排行榜功能
- Unity实现排行榜(PlayerPrefs)
- 使用 Redis 实现排行榜功能
- Unity实现排行榜(PlayerPrefs)
- CSS实现排行榜标签样式
- 排行榜
- 五大常用算法之四:回溯法
- linux学习笔记—杂项1
- RecommenderIntro
- Android Studio 1.0.1 + Genymotion安卓模拟器打造高效安卓开发环境
- Android控件的一些属性
- mysql实现排行榜
- Visual Studio + VAssistX常用快捷键
- 智力测验题
- HDU1241 Oil Deposits 搜索入门
- u盘制作Mac安装盘
- UI_UIView(视图)
- 利用堆栈解析算术表达式
- JAVA的反射机制
- 企业数据备份技术