免费学习推荐:

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

一、准备工作

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

二、条件排序需求一:成绩从高到低进行排序

街边卖菜的阿姨都能敲,直接使用 ORDER BY examScore DESC 轻松完成了(如下左图)。需求二:成绩从高到低进行排序,并且没录入成绩的排在最前面

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

五、猜你喜欢MySQL远程连接报错1130解决方法

MySQL配置主从同步备份

使用过滤器防止SQL注入相关免费学习推荐:(视频)

mysql中从高到低排序_MySQL数据库少有人知的排序方式 MySQL数据库使用教程相关推荐

  1. mysql中数据表null什么意思_MySQL 中NULL和空值的区别是什么?

    展开全部 空值是不占用空间的,MySQL中的NULL其实是占用空间的. 不过在MySQL数据库中执行62616964757a686964616fe78988e69d8331333363396466SQ ...

  2. mysql中in查询效率低的替代方法_一波骚操作,我把 SQL 执行效率提高了 10,000,000 倍...

    场景 我用的数据库是mysql5.6,下面简单的介绍下场景 课程表: 数据100条 学生表: 数据70000条 学生成绩表SC 数据70w条 查询目的:查找语文考100分的考生 查询语句: selec ...

  3. mysql查询按值多的排序_MySQL查询结果按某值排序

    MySQL查询结果按某值排序 使用MySQL很多时候我们不仅只是查询出结果,还需要对查询结构进行排序,下文对查询结果按某值排序的方法作了详细的介绍,供您参考. AD: MySQL查询结果如何排序呢?这 ...

  4. 在MySQL中以下属于ddl语句的_MySQL的DDL语句、DML语句与DCL语句

    背景:近几年,开源数据库逐渐流行起来.由于具有免费使用.配置简单.稳定性好.性能优良等优点,开源数据库在中低端应用上占据了很大的市场份额,而 MySQL 正是开源数据库中的杰出代表.MySQL 数据库 ...

  5. mysql 中存储引擎是什么意思_mysql常用的存储引擎是什么

    mysql常用的存储引擎是什么 发布时间:2020-12-02 09:35:04 来源:亿速云 阅读:62 作者:小新 这篇文章将为大家详细讲解有关mysql常用的存储引擎是什么,小编觉得挺实用的,因 ...

  6. mysql中if在oracle怎么用_MySql和Oracle的使用

    本文档是一个记录文档,会不定时更新使用过程中遇到的差异问题 本文档记录MySql和Oracle在使用中要注意的问题,也包括两者使用上的差异问题 字符串拼接函数 CONCAT MySql MySql的 ...

  7. mysql 中如何删除重复的数据_mysql如何快速删除重复的数据

    在mysql中去重,其实是一个很简单的事情,来看下面的例子: mysql> DROP TABLE test; Query OK, 0 rows affected (0.01 sec) mysql ...

  8. mysql中创建唯一索引的关键字_mysql中唯一索引的关键字是什么

    mysql中唯一索引的关键字是unique index.创建唯一索引可以避免数据出现重复.唯一索引可以有多个,但索引列的值必须唯一,索引列的值允许有空值.创建唯一索引可以使用关键字UNIQUE随表一同 ...

  9. MySQL中引入存储引擎意义是_mysql学习九:存储引擎、存储过程和函数的引入

    存储引擎: 存储引擎是mysql特有的,共有7种,常用的有myisam.memory.innodb 查看表的存储引擎: show create table 表名; 修改表的存储引擎: alter ta ...

最新文章

  1. CMakeLists.txt的运行方法
  2. Android MVVM 架构应用实现
  3. VC++6 开发MFC扩展DLL以及MFC DLL可以包含界面
  4. 下载安装tomcat6.0
  5. Python 使用正则表达式中的 /b 的时候出现了问题
  6. Struts2s:select/s:select
  7. 太神奇!2张关键帧,AI生成完整运动过程!
  8. win8好用吗_小编告诉你win8好用吗?你有用过吗
  9. 2-2Pytorch1.5环境配置
  10. 东方韵味春节牛年PSD分层海报,过大年不愁没海报发了!
  11. 如何在服务器上使用matlab
  12. (8)Powershell中变量的定义和使用
  13. 麻省理工学院《算法导论》(MIT - Introduction to Algorithms)
  14. java性能、代码优化
  15. 大数据分析的环节有哪些
  16. 舆情监测平台TOOM
  17. VS2012新建项目
  18. 账龄分析表excel模板_智能考勤表excel表模板
  19. 软件项目开发与管理(单代号网络图参考例题)
  20. Alienware-17-R4-630-1060-MacOS 笔记本双显卡 外星人黑苹果hackintosh 10.15

热门文章

  1. 5G技术在广播电视网络中的应用
  2. 统计语言模型:Bi-gram
  3. 三星手机拍照图片自动旋解决方法
  4. node - 下载安装指定版本
  5. html转word后页面大小调整,如何调整大小的HTML文件在Word ?
  6. 关于(nID 0xFFF0) == IDM_ABOUTBOX的思考
  7. ORACLE解锁record is locked by another user
  8. 2023 最新双端相册TXL源码
  9. 读书笔记:《游戏感:游戏操控感和体验设计指南》
  10. word论文格式修改