MySQL排序查询
一、排序查询概论
所谓排序查询,也就是在查询完显示查询结果后,查询结果会以某一个字段的属性排序所得的顺序进行展示,这就是排序查询。
排序查询的语法:
select 查询列表
from 表
【where 筛选条件】
order by 排序列表 【asc / desc】
排序查询的特点:
- 不写asc或者desc,默认升序
- asc:升序,从低到高
- desc:降序,从高到低
- order by 子句中可以直接单个字段、多个字段、表达式、函数、别名
- order by 子句一般是放在查询语句的最后面,limit语句除外
二、案例展示
# 案例1:查询员工信息,要求工资从高到低排序
SELECT *
FROM `employees`
ORDER BY `salary`;
# 案例2:查询部门编号>=90的员工信息,按照入职时间的先后进行排序
SELECT *
FROM `employees`
WHERE `department_id` >= 90
ORDER BY `hiredate`;
# 案例3:按年薪的高低显示员工的信息和年薪【按表达式排序】
SELECT *, `salary` * 12 *(1 + IFNULL(`commission_pct`, 0)) AS 年薪
FROM `employees`
ORDER BY `salary` * 12 *(1 + IFNULL(`commission_pct`, 0)) DESC;
# 案例4:按年薪的高低显示员工的信息和年薪【按别名排序】
SELECT *, `salary` * 12 *(1 + IFNULL(`commission_pct`, 0)) AS 年薪
FROM `employees`
ORDER BY 年薪 DESC;
# 案例5:按姓名的长度显示员工的姓名和工资【按函数排序】
# 在这个案例中会用到一个函数length(),其返回值是返回当前字符串的长度
SELECT `last_name` 姓名, LENGTH(`last_name`) 姓名长度, `salary` 工资
FROM `employees`
ORDER BY 姓名长度 DESC;
# 案例6:查询员工信息,要求先按工资排序,再按员工编号排序【按多个字段排序,先按谁排序,就先写谁在前】
SELECT *
FROM `employees`
ORDER BY `salary` DESC, `employee_id` DESC;
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/95029.html