返回顶部
首页 > 资讯 > 数据库 >MySQL中一些鲜为人知的排序方式
  • 112
分享到

MySQL中一些鲜为人知的排序方式

2024-04-02 19:04:59 112人浏览 八月长安
摘要

前言 ORDER BY 字段名 升序/降序,相信进来的朋友都认识这个排序语句,但遇到一些特殊的排序,单单使用字段名就无法满足需求了,下面给大家介绍几个我遇到过的排序方法: 一、准备工

前言

ORDER BY 字段名 升序/降序,相信进来的朋友都认识这个排序语句,但遇到一些特殊的排序,单单使用字段名就无法满足需求了,下面给大家介绍几个我遇到过的排序方法:

一、准备工作

为了更好演示与理解,先准备一张学生表,加入编号、姓名、成绩三个字段,插入几条数据,如图:

二、条件排序

需求一:成绩从高到低进行排序

街边卖菜的阿姨都能敲,直接使用 ORDER BY examScore DESC 轻松完成了(如下左图)。

需求二:成绩从高到低进行排序,并且没录入成绩的排在最前面

客户体验最重要,为了方便二次录入成绩,提出这样的需求纯属正常。要实现该排序,上面的语句是无法实现的,因此就需要用到条件排序,先判断成绩为空赋个最大值,再进行排序,如 ORDER BY IF(examScore IS NULL,101,examScore) DESC 也能轻松实现(如下右图)。

需求 需求一 需求二
语句 ORDER BY examScore DESC ORDER BY IF(examScore IS NULL,101,examScore) DESC
效果 在这里插入图片描述 在这里插入图片描述

三、自定义排序

客户如上帝,需求花里胡哨也屡见不鲜,就比如,要求张三李四排在最前面,其他学生按照成绩从高到低进行排序。这种情况就需要使用自定义排序了,Mysql 自带的 FIELD 函数(返回对应字符串索引)可帮您实现。

语句一:
ORDER BY FIELD(studentName,‘张三',‘李四') ASC, examScore DESC;

上面语句运行结果却把张三李四排到最后了(如下左图),顺理成章的,要把张三李四编排到最前面就进行降序排序。

语句二:
ORDER BY FIELD(studentName,‘李四',‘张三') DESC, examScore DESC;

结果果然正中下怀(如下右图)。

语句 语句一 语句二
效果 在这里插入图片描述 在这里插入图片描述

后来发现 FIND_IN_SET 函数也能实现,而且使用100万条数据测试,FIND_IN_SET 性能更优。

ORDER BY FIND_IN_SET(studentName,‘李四,张三') DESC, examScore DESC;

四、汉字拼音首字母排序

有些朋友就奇怪了,汉字排序直接使用普通的 ORDER BY 字段 ASC 轻松完事啦,为什么说鲜为人知呢。
其实,用户创建表字段使用 GBK 字符集时,直接使用ORDER BY 字段 ASC 可以迎刃而解,有些用户为了防止乱码,使用了 utf8 字符集,简单的排序语句就无能为力了(如下左图),因此在排序时把字段转换为 GBK 就OK了(如下右图)。

语句 ORDER BY studentName ASC ORDER BY CONVERT(studentName USING GBK) ASC
效果 在这里插入图片描述 在这里插入图片描述

总结

到此这篇关于mysql中一些鲜为人知的排序方式的文章就介绍到这了,更多相关Mysql排序方式内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

您可能感兴趣的文档:

--结束END--

本文标题: MySQL中一些鲜为人知的排序方式

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

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

猜你喜欢
  • MySQL中一些鲜为人知的排序方式
    前言 ORDER BY 字段名 升序/降序,相信进来的朋友都认识这个排序语句,但遇到一些特殊的排序,单单使用字段名就无法满足需求了,下面给大家介绍几个我遇到过的排序方法: 一、准备工...
    99+
    2024-04-02
  • JavaScript中有哪些鲜为人知的技巧
    本篇内容介绍了“JavaScript中有哪些鲜为人知的技巧”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!v...
    99+
    2024-04-02
  • 鲜为人知的Pandas技巧有哪些
    这篇文章主要介绍了鲜为人知的Pandas技巧有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Pandas为Python营造了一个高水平的操作环境,还提供了便于操作的数据结...
    99+
    2023-06-16
  • Swift鲜为人知的特性有哪些
    这篇文章主要讲解了“Swift鲜为人知的特性有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Swift鲜为人知的特性有哪些”吧!考虑这样一种常见情况:在没有遇到任何错误的情况下,要启动网...
    99+
    2023-06-16
  • 鲜为人知的Python功能有哪些
    这篇文章主要介绍鲜为人知的Python功能有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!divmod这是一个非常有用的函数。函数的作用是:对两个数执行模除%运算,然后返回商和余数。例如:divmod(5,&nb...
    99+
    2023-06-16
  • Javascript中Microtask和Macrotask鲜为人知的知识点
    首先我们来看一道题目,如下javascript代码,执行后会在控制台打印出什么内容? async function async1() { console.log('async1...
    99+
    2024-04-02
  • 百度搜索引擎一些鲜为人知的深度搜索语法
    目录搜索语法汇总【建议收藏】1、filetype  搜索文件的后缀或者扩展名2、info 网站基本信息3、inurl 网址链接包含的关键字4、 index of 对搜索引擎...
    99+
    2024-04-02
  • MySQL中有哪些排序方式
    这篇文章给大家介绍MySQL中有哪些排序方式,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、准备工作准备一张学生表,加入编号、姓名、成绩三个字段,插入几条数据,如图:二、条件排序需求一:成绩从高到低进行排序街边卖菜的...
    99+
    2023-06-14
  • 从排序原理到MYSQL中的排序方式
    本文参考MYSQL官方文档,算法书籍,部分为自己观点可能有误,如果有误请指出共同讨论 转载请说明出处,谢谢! 一、MYSQL排序可能用到的排序算法 从MYSQL官方文档和源码的接口来看MYSQL使用B...
    99+
    2024-04-02
  • 微软Win8 RP版中鲜为人知的技巧介绍(图)
    微软民已于几日前正式对外发布Windows8 RP版,初次上手的用户不知所措?来看微软官方提供的Win8 RP版使用指南,介绍那些你不知道的技巧。 下载:《Win8 RP微软原版光盘镜像下载大全(含中文...
    99+
    2022-06-04
    微软 鲜为人知 版中
  • TreeSet中的排序方式有哪些
    本篇文章给大家分享的是有关TreeSet中的排序方式有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。直接上代码:package exercise1;public class...
    99+
    2023-05-31
    treeset 排序
  • MySQ中排序方式有哪些
    这篇文章给大家分享的是有关MySQ中排序方式有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。ORDER BY 字段名 升序/降序,相信进来的朋友都认识这个排序语句,但遇到一些...
    99+
    2024-04-02
  • Windows系统中鲜为人知的八大保密技巧详细介绍
           Windows自带的功能,为了方便我们的使用,有自动记录的功能,但是这些功能有些事情也把我们的“行踪”给暴露了,这个时候应...
    99+
    2023-05-31
    Windows 保密技巧 技巧 系统 保密
  • HTML 有序列表:15 个鲜为人知的技巧,让你的网站脱颖而出
    使用不同的列表样式: HTML 有序列表提供多种内置的列表样式,包括数字、字母、罗马数字等。您可以使用不同的列表样式来创建更具视觉吸引力的列表。 设置列表项的起始值: 您可以使用 start 属性来设置列表项的起始值。例如,如果...
    99+
    2024-02-22
    HTML 有序列表 列表样式 编号列表 交互性
  • JAVA基础之一些不为人知的那些秘密
    目录NO.1–注释NO.2–标识符和关键字1.1 标识符1.2 关键字NO.3–数据类型讲解NO.4–类型转换NO.5–变...
    99+
    2024-04-02
  • MySQL排序的方法有哪些
    MySQL排序的方法有以下几种:1. 使用ORDER BY子句对结果进行排序。可以根据指定的列进行升序或降序排序。例如:SELEC&...
    99+
    2023-09-15
    MySQL
  • python列表中常见的一些排序方法
    目录1、冒泡排序法方法一:直接使用for循环方法二:使用while语句2、选择排序法方法一:remove和append同时使用方法二:pop和append同时使用3、list.sor...
    99+
    2024-04-02
  • mysql分组排序的方法有哪些
    在MySQL中,可以使用GROUP BY子句和ORDER BY子句来对数据进行分组排序。以下是一些常用的方法: 使用GROUP B...
    99+
    2024-03-14
    mysql
  • springdataJPA中的多属性排序方式
    目录spring data JPA的多属性排序第一步,引包第二步,service方法代码spring data JPA排序问题(order by)spring data JPA的多属...
    99+
    2024-04-02
  • Mysql分组排序取每组第一条的2种实现方式
    目录前言前期准备第一种原因分析:解决:第二种GROUP_CONCAT函数解释:总结前言 记录一下最近的一个需求,查不同产品排名第一的图片作为主图 其实一开始想用的是myBATis的级联查询,结果说需要一次性全部查出来 那...
    99+
    2023-02-15
    mysql 分组排序取每组第一条 mysql分组取时间最近一条 MySQL分组查询每组取第一条
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作