欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

MySQL中对查询结果排序和限定结果的返回数量的用法教程

程序员文章站 2024-02-25 17:01:33
mysql order by 查询结果排序 order by sql 语法中 order by 关键字用于对查询结果进行排序。 排序分为升序(asc)和降序(desc...

mysql order by 查询结果排序
order by
sql 语法中 order by 关键字用于对查询结果进行排序。
排序分为升序(asc)和降序(desc)两种,当不使用 order by 指定排序方式时,默认为升序。
语法:

select column,… from tb_name order by column1,column2,… desc(asc)

order by 后面必须列出排序的字段名,可以是多个字段。
对 user 表 uid 进行降序查询:

select uid,username from user order by uid desc

查询结果如下:

uid username
4   小王
3   jack
2   小明
1   admin

例子 2:

select username from user order by regdate desc limit 10

该例子查询出最新注册的 10 名用户的用户名。

mysql limit 限定查询记录数
mysql limit
mysql 中 limit 关键字用于限定查询记录返回最大数目。
语法:

... limit offset , rows

该语法中,offset表示偏移量(指向数据记录的游标),rows表示查询限定返回的最大记录数,这两个参数必须为整数。
例子:

select username from user limit 4,10

如果 user 表中的数据记录超过14条的话,该例子将会返回符合结果的第 5-14 条记录(共 10 条),注意默认偏移量是从 0 开始的。
offset 参数如果省略,则默认为 0 ,即 limit 10 等同于 limit 0,10 (返回符合查询条件的前 10 条记录)。
提示
limit 中 rows 并不支持取值 -1 (从当前偏移量到表记录结束的所有数据),如:

select username from user limit 9,-1

运行该 sql 会产生参数错误。
小技巧
当你确认查询结果只有一条数据时(如核对用户名密码),可以加上limit 1的限制条件,当系统查询到一条数据后即停止搜索而不会继续查找下一条记录,这样可有效提高查询效率。