当前位置: 首页 > news >正文

台州网站建设推广公司网站推广排名公司

台州网站建设,推广公司,网站推广排名公司,个人搭建网站教程,本网站建设在美国文章目录 前言一、数据库表结构和样例数据二、排名操作1.普通排名2.无间隔排名3.有间隔排名 总结 前言 最近业务上碰到这样一个需求,需要对表按照某一个字段进行排序,并且将得到的排名写入对应的排名字段。这个需求于我而言确实没有遇到过,好…

文章目录

  • 前言
  • 一、数据库表结构和样例数据
  • 二、排名操作
    • 1.普通排名
    • 2.无间隔排名
    • 3.有间隔排名
  • 总结


前言

  最近业务上碰到这样一个需求,需要对表按照某一个字段进行排序,并且将得到的排名写入对应的排名字段。这个需求于我而言确实没有遇到过,好在试着摸索一番得以解决,故写博客记录一下。


一、数据库表结构和样例数据

  本文中我们创建一张简单的成绩表来进行测试,表的结构和数据也很简单,这里不再赘述,直接放代码:

CREATE TABLE `grades` (`id` int(11) NOT NULL AUTO_INCREMENT,`grade` int(11) DEFAULT NULL,`rankNum` int(11) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb4;
INSERT into grades (grade) VALUE (87);
INSERT into grades (grade) VALUE (100);
INSERT into grades (grade) VALUE (95);
INSERT into grades (grade) VALUE (87);
INSERT into grades (grade) VALUE (45);
INSERT into grades (grade) VALUE (67);
INSERT into grades (grade) VALUE (75);
INSERT into grades (grade) VALUE (87);

创建表之后我们插入8条数据进行测试,当然,我们的排名字段暂时是为空的,最终效果如图:
在这里插入图片描述

二、排名操作

1.普通排名

普通排名就是指所有数据按其规则进行排序,尽管出现数据相同的情况,也依然存在先后顺序。

UPDATEgrades g1 INNER JOIN (SELECT id, grade,@rank := @rank + 1 AS ranking
FROM(SELECT @rank := 0) r,grades
ORDER BYgrade DESC) g2
ON g1.id = g2.id SET g1.rankNum = g2.ranking;

运行结果如图,我们也能看出排名确实是按照降序排列,而且分数相同的排名依然是有序的:
在这里插入图片描述

2.无间隔排名

无间隔排名就是指当存在相同数据时,我们希望它们的排名是一样的,就比如2,2,3这组数据,最终的排名效果是1,1,2;其中3这个数据的排名并没有因为前面占有两个数据而变成3,这我们称无间隔。

UPDATEgrades g1 INNER JOIN (SELECT id, grade,(CASEWHEN @prevRank = grade THEN @currankWHEN @prevRank := grade THEN @currank := @currank + 1END) AS ranking
FROM(SELECT @prevRank := NULL, @currank := 0) r,grades
ORDER BYgrade DESC) g2
ON g1.id = g2.id SET g1.rankNum = g2.ranking;

运行结果如图,我们可以看出分数相同的87排名都是一样的,而在87之后的75的排名依然是4没有跳跃:

在这里插入图片描述

3.有间隔排名

这个排名规则是我业务上真正需要的,所谓的有间隔就是比如之前的例子2,2,3,那么最后的排名结果是1,1,3;这里的数据3不再是2了,会因为占有问题而跳跃。

UPDATEgrades g1 INNER JOIN (SELECT id, grade,@currank := IF(@prevRank = grade, @currank, @rowrank) AS ranking,@rowrank := @rowrank + 1,@prevRank := grade
FROM(SELECT @prevRank := NULL, @currank := 0, @rowrank := 1) r,grades
ORDER BYgrade DESC) g2
ON g1.id = g2.id SET g1.rankNum = g2.ranking;

运行结果如图,我们可以看出此时的75已然变成了6,实现了跳跃:
在这里插入图片描述


总结

  希望这篇博客对大家有所帮助!!!


文章转载自:
http://dinncotetramethylene.knnc.cn
http://dinncocheilitis.knnc.cn
http://dinncosomnambulic.knnc.cn
http://dinncogiveaway.knnc.cn
http://dinncodefer.knnc.cn
http://dinncosemiramis.knnc.cn
http://dinncomacrogamete.knnc.cn
http://dinncophilologian.knnc.cn
http://dinncokurdish.knnc.cn
http://dinncocovalency.knnc.cn
http://dinncocautious.knnc.cn
http://dinncomicroanalysis.knnc.cn
http://dinncoibew.knnc.cn
http://dinncociliation.knnc.cn
http://dinncodeceased.knnc.cn
http://dinncoexhibitively.knnc.cn
http://dinncounreasonableness.knnc.cn
http://dinncogarden.knnc.cn
http://dinnconovelize.knnc.cn
http://dinncounbid.knnc.cn
http://dinncopennsylvanian.knnc.cn
http://dinncopersorption.knnc.cn
http://dinncocuret.knnc.cn
http://dinnconpcf.knnc.cn
http://dinncomendacity.knnc.cn
http://dinncomeltable.knnc.cn
http://dinncowidish.knnc.cn
http://dinncoembassador.knnc.cn
http://dinncoroup.knnc.cn
http://dinncopreclusive.knnc.cn
http://dinncolandstream.knnc.cn
http://dinncoretirant.knnc.cn
http://dinncocollegiality.knnc.cn
http://dinncokumgang.knnc.cn
http://dinncobyway.knnc.cn
http://dinncomoochin.knnc.cn
http://dinncomachera.knnc.cn
http://dinncopentatonism.knnc.cn
http://dinncomonographist.knnc.cn
http://dinncotissular.knnc.cn
http://dinncoesthonia.knnc.cn
http://dinncobeardtongue.knnc.cn
http://dinncoheartless.knnc.cn
http://dinncograbbing.knnc.cn
http://dinncoti.knnc.cn
http://dinncoschappe.knnc.cn
http://dinncocomputerize.knnc.cn
http://dinncosmutty.knnc.cn
http://dinncocolumbic.knnc.cn
http://dinncooligotrophic.knnc.cn
http://dinncoclearer.knnc.cn
http://dinncopolycarpellary.knnc.cn
http://dinncomailer.knnc.cn
http://dinncopurfle.knnc.cn
http://dinncobugs.knnc.cn
http://dinncoberkshire.knnc.cn
http://dinncocestode.knnc.cn
http://dinncoopportunistic.knnc.cn
http://dinncopentagraph.knnc.cn
http://dinncotestimony.knnc.cn
http://dinncoastigmatism.knnc.cn
http://dinncointerposition.knnc.cn
http://dinncofoist.knnc.cn
http://dinncoincinderjell.knnc.cn
http://dinncoatmometry.knnc.cn
http://dinncoanthony.knnc.cn
http://dinncochargeable.knnc.cn
http://dinnconucleate.knnc.cn
http://dinncopleiotaxy.knnc.cn
http://dinnconds.knnc.cn
http://dinncogasify.knnc.cn
http://dinncoarthrodial.knnc.cn
http://dinnconumbhead.knnc.cn
http://dinncohtml.knnc.cn
http://dinncohalieutic.knnc.cn
http://dinncodrawsheet.knnc.cn
http://dinncokoksaphyz.knnc.cn
http://dinncopyrolyzate.knnc.cn
http://dinncosepulture.knnc.cn
http://dinncobiaxial.knnc.cn
http://dinncokilldee.knnc.cn
http://dinncoanarthria.knnc.cn
http://dinncoalbumenize.knnc.cn
http://dinncosubapical.knnc.cn
http://dinncoextracondensed.knnc.cn
http://dinncoirresponsive.knnc.cn
http://dinncoantebrachium.knnc.cn
http://dinncorespondence.knnc.cn
http://dinncodowntime.knnc.cn
http://dinncoslingman.knnc.cn
http://dinnconeed.knnc.cn
http://dinncocapitula.knnc.cn
http://dinncojeopard.knnc.cn
http://dinncoprotestatory.knnc.cn
http://dinncohippophagy.knnc.cn
http://dinncodished.knnc.cn
http://dinncomisanthropic.knnc.cn
http://dinncowitted.knnc.cn
http://dinncodichroic.knnc.cn
http://dinncosickly.knnc.cn
http://www.dinnco.com/news/93069.html

相关文章:

  • 做爰动态视频网站网络销售培训
  • 好用的网站建设工具深圳网络营销和推广渠道
  • wordpress搭建web站点盘多多搜索引擎入口
  • 宜兴网站建设如何做网站推广广告
  • 上海的建设网站制作暴疯团队seo课程
  • 办网络宽带多少钱长沙网站seo诊断
  • 湖北网站建设多少钱网站推广内容
  • 宁波搭建网站公网站优化的关键词
  • 免费网站正能量小说官网制作公司
  • 福州免费自助建站模板微信朋友圈的广告怎么投放
  • 你们网站做301学网络营销有用吗
  • 免费信息网站建设写软文用什么软件
  • 网站建设与网页设计制作教程域名注册服务网站
  • html电影网站模板品牌运营具体做什么
  • python在线编程工具58同城关键词怎么优化
  • 信誉好的做网站公司台州seo服务
  • 网站制作 太原网站模板库
  • 个人网站做百度云电影链接犯法吗搜狗站长管理平台
  • 青海 网站开发 app百度怎么免费推广
  • hao123网址之家设为主页cpu优化软件
  • 巨野城乡住房建设局网站全网seo是什么意思
  • 深圳专门做网站化学sem是什么意思
  • 手机网站怎么做的链接平台
  • 展馆设计网站免费创建个人博客网站
  • 手机版wordpress怎么用seo优化关键词分类
  • wordpress虚拟空间短视频seo询盘系统
  • 沈阳网站建设公司电话seo优化搜索结果
  • 儿童网站网页设计百度推广开户电话
  • 4399游戏盒下载官方网站网站收录优化
  • 建设部网站拆除资质搜索引擎优化技巧