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

MySQL 查询常用操作(3)——排序 order by

MySQL中常用的查询操作,首先是能直接从表中直接取出数据,接着能对查询结果做一些简单的处理,比如去重等,然后是根据条件查询数据,包括精准查询、模糊查询以及按照数据的某个范围或者指定多个指标进行查询,值得注意的是,MySQL中的一些查询会忽略空值。最后是将查询结果进行排序,主要包括升序和降序以及多个字段的先后排序处理。

第三部分主要介绍order by 语句——对查询结果进行排序。

一、具体方法

对查询结果排序

1、表达式后面可选地跟着 asc 或 desc 来指示排序方向。如果没有指定方向,默认为 asc。
2、升序时先对空值排序,降序时最后对空值排序。
问题类型方法
按照用户年龄进行升序排列升序order by a
先按照age升序,再按照gpa升序多列排序order by a,b
先按照age降序,再按照gpa降序多列降序order by a desc, b desc

扩展:

高级用法前往:MySQL union 和 order by 一起使用需要注意的问题

二、实例

已知有用户信息表user_profile(device_id 设备ID, gender 性别, age 年龄, university 学校, gpa)

iddevice_idgenderageuniversitygpa
12138male21北京大学3.4
23214male复旦大学4.0
36543female20北京大学3.2
42315female23浙江大学3.6
55432male25山东大学3.8
62131male28北京师范大学3.3

题目1:取出用户的device_id、age、university信息,并按照用户年龄进行升序排列

【分类】:升序

【知识点】:order by a

求解代码
select device_id,age,university
from user_profile
order by age;
结果
device_idageuniversity
3214None复旦大学
654320北京大学
213821北京大学
231523浙江大学
543225山东大学
213128北京师范大学

题目2:取出用户信息表中的device_id,gpa,age数据,并先按照gpa升序排序,再按照age升序排序输出

【分类】:多列升序

【知识点】:order by a ,b

求解代码
selectdevice_id,age,gpa
from user_profile
order by age,gpa;
结果
device_idagegpa
3214None4.0
6543203.2
2138213.4
2315233.6
5432253.8
2131283.3

题目3:取出用户信息表中的device_id,gpa,age数据,并先按照gpa、年龄降序排序输出

【分类】:多列降序

【知识点】: order by a desc, b desc

求解代码
selectdevice_id,age,gpa
from user_profile
order by age desc,gpa desc;
结果
device_idagegpa
2131283.3
5432253.8
2315233.6
2138213.4
6543203.2
3214None4.0

创建 user_profile 表的代码

-- ----------------------------
-- Table structure for user_profile
-- ----------------------------
DROP TABLE IF EXISTS `user_profile`;
CREATE TABLE `user_profile`  (`id` int(11) NOT NULL,`device_id` int(11) NOT NULL,`gender` varchar(14) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,`age` int(11) NULL DEFAULT NULL,`university` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,`gpa` float NULL DEFAULT NULL
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;-- ----------------------------
-- Records of user_profile
-- ----------------------------
INSERT INTO `user_profile` VALUES (1, 2138, 'male', 21, '北京大学', 3.4);
INSERT INTO `user_profile` VALUES (2, 3214, 'male', NULL, '复旦大学', 4);
INSERT INTO `user_profile` VALUES (3, 6543, 'female', 20, '北京大学', 3.2);
INSERT INTO `user_profile` VALUES (4, 2315, 'female', 23, '浙江大学', 3.6);
INSERT INTO `user_profile` VALUES (5, 5432, 'male', 25, '山东大学', 3.8);
INSERT INTO `user_profile` VALUES (6, 2131, 'male', 28, '北京师范大学', 3.3);SET FOREIGN_KEY_CHECKS = 1;
http://www.lryc.cn/news/58365.html

相关文章:

  • Android Jetpack 从使用到源码深耕【数据库注解Room 从实践到原理 】(二)
  • 传统企业如何实现数字化转型?
  • Linux修改密码报错Authentication token manipulation error的终极解决方法
  • ROS实践06 自定义消息类型
  • 《剑指offer》——从尾到头打印链表
  • Javaweb基础配置模板(mybatis+javaweb)
  • 物联网 JS 前端框架开发 - 执行 js 程序
  • 区块链概论
  • MAC地址表安全
  • 处理CSV(python)
  • 【云原生】Kubernetes(k8s)之容器的探测
  • 看完这个你就牛了,自动化测试框架设计
  • Spring Cloud Alibaba全家桶(八)——Sentinel规则持久化
  • Mysql不锁表备份之Xtrabackup的备份与恢复
  • flex布局:输入框布局demo
  • PHP请求的好处,PHP如何请求淘宝开放接口
  • 精选出来的几道Java语法基础面试题
  • uniapp或者小程序图片选择中的sizeType属性到底是什么
  • 判断一个字符串是否是回文
  • 国产软件爆发!中国版Navicat,SQL Studio成数据库管理工具热门
  • 算法学习day51
  • 10 JS01——初识JS
  • 【软考备考-综合知识】安全性、可靠性与系统性能评测基础知识
  • 匆忙之间难免疏忽,写代码更加如此
  • 低代码(七)低代码平台后端技术选型2.0
  • UDS介绍
  • ASP.NET Core MVC 从入门到精通之初窥门径
  • 英码科技智慧环卫:构建宜居城市新篇章
  • 在Spring Boot微服务使用HashOperations操作Redis Hash哈希散列
  • innobackupex备份mysql产生returned OS error 124