mysql中从高到低排序_MySQL数据库少有人知的排序方式 MySQL数据库使用教程
免费学习推荐:
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数据库使用教程相关推荐
- mysql中数据表null什么意思_MySQL 中NULL和空值的区别是什么?
展开全部 空值是不占用空间的,MySQL中的NULL其实是占用空间的. 不过在MySQL数据库中执行62616964757a686964616fe78988e69d8331333363396466SQ ...
- mysql中in查询效率低的替代方法_一波骚操作,我把 SQL 执行效率提高了 10,000,000 倍...
场景 我用的数据库是mysql5.6,下面简单的介绍下场景 课程表: 数据100条 学生表: 数据70000条 学生成绩表SC 数据70w条 查询目的:查找语文考100分的考生 查询语句: selec ...
- mysql查询按值多的排序_MySQL查询结果按某值排序
MySQL查询结果按某值排序 使用MySQL很多时候我们不仅只是查询出结果,还需要对查询结构进行排序,下文对查询结果按某值排序的方法作了详细的介绍,供您参考. AD: MySQL查询结果如何排序呢?这 ...
- 在MySQL中以下属于ddl语句的_MySQL的DDL语句、DML语句与DCL语句
背景:近几年,开源数据库逐渐流行起来.由于具有免费使用.配置简单.稳定性好.性能优良等优点,开源数据库在中低端应用上占据了很大的市场份额,而 MySQL 正是开源数据库中的杰出代表.MySQL 数据库 ...
- mysql 中存储引擎是什么意思_mysql常用的存储引擎是什么
mysql常用的存储引擎是什么 发布时间:2020-12-02 09:35:04 来源:亿速云 阅读:62 作者:小新 这篇文章将为大家详细讲解有关mysql常用的存储引擎是什么,小编觉得挺实用的,因 ...
- mysql中if在oracle怎么用_MySql和Oracle的使用
本文档是一个记录文档,会不定时更新使用过程中遇到的差异问题 本文档记录MySql和Oracle在使用中要注意的问题,也包括两者使用上的差异问题 字符串拼接函数 CONCAT MySql MySql的 ...
- mysql 中如何删除重复的数据_mysql如何快速删除重复的数据
在mysql中去重,其实是一个很简单的事情,来看下面的例子: mysql> DROP TABLE test; Query OK, 0 rows affected (0.01 sec) mysql ...
- mysql中创建唯一索引的关键字_mysql中唯一索引的关键字是什么
mysql中唯一索引的关键字是unique index.创建唯一索引可以避免数据出现重复.唯一索引可以有多个,但索引列的值必须唯一,索引列的值允许有空值.创建唯一索引可以使用关键字UNIQUE随表一同 ...
- MySQL中引入存储引擎意义是_mysql学习九:存储引擎、存储过程和函数的引入
存储引擎: 存储引擎是mysql特有的,共有7种,常用的有myisam.memory.innodb 查看表的存储引擎: show create table 表名; 修改表的存储引擎: alter ta ...
最新文章
- CMakeLists.txt的运行方法
- Android MVVM 架构应用实现
- VC++6 开发MFC扩展DLL以及MFC DLL可以包含界面
- 下载安装tomcat6.0
- Python 使用正则表达式中的 /b 的时候出现了问题
- Struts2s:select/s:select
- 太神奇!2张关键帧,AI生成完整运动过程!
- win8好用吗_小编告诉你win8好用吗?你有用过吗
- 2-2Pytorch1.5环境配置
- 东方韵味春节牛年PSD分层海报,过大年不愁没海报发了!
- 如何在服务器上使用matlab
- (8)Powershell中变量的定义和使用
- 麻省理工学院《算法导论》(MIT - Introduction to Algorithms)
- java性能、代码优化
- 大数据分析的环节有哪些
- 舆情监测平台TOOM
- VS2012新建项目
- 账龄分析表excel模板_智能考勤表excel表模板
- 软件项目开发与管理(单代号网络图参考例题)
- Alienware-17-R4-630-1060-MacOS 笔记本双显卡 外星人黑苹果hackintosh 10.15