写点什么

排序

用户头像
在即
关注
发布于: 2021 年 03 月 27 日
排序

在项目开发时,为了使查询的数据结果满足用户的要求,通常会对查询出的数据进行上升或下降的排序。

MySQL 提供了两种排序的方式,分别为单字段排序和多字段排序。

单字段排序:指的是查询时仅按照一个指定字段进行升序或降序排序。

SELECT *|{字段列表} FROM 数据表名

ORDER BY 字段名 [ASC | DESC];

ASC 表示升序,DESC 表示降序。

ORDER BY 默认值为 ASC。


多字段排序:指的是查询时按照指定的多个字段进行升序或降序排序。

SELECT *|{字段列表} FROM 数据表名

ORDER BY 字段名 1 [ASC | DESC] [, 字段名 2 [ASC | DESC]]…;

多字段排序首先按照字段名 1 进行排序,当字段 1 的值相同时,再按照字段 2 进行排序,依次类推。

数据表的字符集是 utf8,当排序的字段为中文时,默认不会按照中文拼音的顺序排序。

在不改变数据表结构的情况下,可以使用“CONVERT(字段名 USING gbk)”函数强制让指定的字段按中文排序。

在按照指定字段进行升序排列时,如果某条记录的字段值为 NULL,则系统会将 NULL 看作是最小的值,从而将其显示在查询结果中的第一条记录的位置。

限量

对于一次性查询出的大量记录,不仅不便于阅读查看,还会浪费系统效率。

MySQL 中提供了一个关键字 LIMIT,可以限定记录的数量,也可以指定查询从哪一条记录开始(通常用于分页)。

SELECT [select 选项] 字段列表 FROM 数据表名

[WHERE 条件表达式] [ORDER BY 字段 ASC|DESC]

LIMIT [OFFSET,] 记录数;

记录数:表示限定获取的最大记录数量。仅含此参数时,表示从第 1 条记录开始获取。

OFFSET:表示偏移量,用于设置从哪条记录开始,默认第 1 条记录的偏移量值为 0,第 2 条记录的偏移量值为 1,依次类推。

限制记录数:查询 sh_goods 表中价格最贵的商品

mysql> SELECT id, name, price FROM sh_goods

    -> ORDER BY price DESC LIMIT 1;

+----+------------+---------+

| id | name | price |

+----+------------+---------+

| 4 | | 5999.00 |

+----+------------+---------+

1 row in set (0.00 sec)

获取指定区间的记录数:从第 1 条记录开始的 5 条商品记录

mysql> SELECT id, name, price FROM sh_goods LIMIT 0, 5;

+----+------------+---------+

| id | name       | price   |

+----+------------+---------+

|  1 |   |    0.50 |

|  2 |  |   15.00 |

|  3 |   |    1.00 |

|  4 |   | 5999.00 |

|  5 |  | 1999.00 |

+----+------------+---------+

5 rows in set (0.00 sec)

在 MySQL 中除了对查询记录进行排序和限量外,对数据表中记录的更新与删除操作也可以进行排序和限量。


发布于: 2021 年 03 月 27 日阅读数: 8
用户头像

在即

关注

还未添加个人签名 2021.02.27 加入

还未添加个人简介

评论

发布
暂无评论
排序