MySQL入门(四)排序查询

本文数据集下载链接:https://pan.baidu.com/s/1sVcSXfVZimc6ruyMr4Gr3g ,提取码:7gfa

一、排序查询

我们知道从 MySQL 表中使用 SQL SELECT 语句来读取数据,如果我们需要对读取的数据进行排序,我们就可以使用 MySQL 的 ORDER BY 子句来设定你想按哪个字段哪种方式来进行排序,再返回搜索结果。

1. 语法

1
2
3
4
SELECT 查询列表
FROM 表
[WHERE 筛选条件]
ORDER BY 排序列表 【ASC】

一般ORDER BY语句放在查询语句的最后【LIMIT子句除外】

  • 你可以使用任何字段来作为排序的条件,从而返回排序后的查询结果。
  • 你可以设定多个字段来排序。
  • 你可以使用 ASCDESC 关键字来设置查询结果是按升序或降序排列。 默认情况下,它是按升序排列。
  • 你可以添加 WHERE...LIKE 子句来设置条件。

2. 案例

案例1查询员工信息,要求工资从高到低排序

1
2
3
SELECT * 
FROM employees
ORDER BY salary DESC;

查询员工信息,要求工资从低到高排序

1
2
3
SELECT * 
FROM employees
ORDER BY salary ASC;

案例2:查询部门编号>=90的员工信息,按入职时间的先后进行排序

1
2
3
4
SELECT * 
FROM employees
WHERE department_id >= 90
ORDER BY hiredate ASC;

案例3:按年薪高低显示员工的信息和年薪【按表达式排序】

1
2
3
SELECT *, salary*12*(1+IFNULL(commission_pct,0)) 年薪 
FROM employees
ORDER BY 年薪

案例4:按姓名长度显示员工的姓名和工资【按函数排序】

1
2
3
SELECT LENGTH(last_name) 字节长度,last_name,salary 
FROM employees
ORDER BY 字节长度 DESC;

案例5:查询员工信息,要求先按工资排序,再按员工编号排序【按多个字段排序】

1
2
3
SELECT * 
FROM employees
ORDER BY salary ASC, employee_id DESC;

二、MySQL拼音排序

如果字符集采用的是 gbk(汉字编码字符集),直接在查询语句后边添加 ORDER BY

1
2
3
SELECT * 
FROM runoob_tbl
ORDER BY runoob_title;

如果字符集采用的是 utf8(万国码),需要先对字段进行转码然后排序:

1
2
3
SELECT * 
FROM runoob_tbl
ORDER BY CONVERT(runoob_title using gbk);
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!

扫一扫,分享到微信

微信分享二维码
  • Copyrights © 2020-2021 chenk
  • 由 帅气的CK本尊 强力驱动
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信