MySQL Order By 查询结果排序
ORDER BY
SQL 语法中 ORDER BY 关键字用于对查询结果进行排序。
排序分为升序(ASC)和降序(DESC)两种,当不使用 ORDER BY 指定排序方式时,默认为升序。
语法:
1
|
SELECT column ,… FROM tb_name ORDER BY column1,column2,… DESC ( ASC ) |
ORDER BY 后面必须列出排序的字段名,可以是多个字段。
对 user 表 uid 进行降序查询:
1
|
SELECT uid,username FROM user ORDER BY uid DESC |
查询结果如下:
1
2
3
4
5
|
uid username 4 小王 3 Jack 2 小明 1 Admin |
例子 2:
1
|
SELECT username FROM user ORDER BY regdate DESC LIMIT 10 |
该例子查询出最新注册的 10 名用户的用户名。
MySQL Limit 限定查询记录数
MySQL LIMIT
MySQL 中 LIMIT 关键字用于限定查询记录返回最大数目。
语法:
1
|
... LIMIT offset , rows |
该语法中,offset表示偏移量(指向数据记录的游标),rows表示查询限定返回的最大记录数,这两个参数必须为整数。
例子:
1
|
SELECT username FROM user LIMIT 4,10 |
如果 user 表中的数据记录超过14条的话,该例子将会返回符合结果的第 5-14 条记录(共 10 条),注意默认偏移量是从 0 开始的。
offset 参数如果省略,则默认为 0 ,即 LIMIT 10 等同于 LIMIT 0,10 (返回符合查询条件的前 10 条记录)。
提示
LIMIT 中 rows 并不支持取值 -1 (从当前偏移量到表记录结束的所有数据),如:
1
|
SELECT username FROM user LIMIT 9,-1 |
运行该 SQL 会产生参数错误。
小技巧
当你确认查询结果只有一条数据时(如核对用户名密码),可以加上LIMIT 1的限制条件,当系统查询到一条数据后即停止搜索而不会继续查找下一条记录,这样可有效提高查询效率。