mysql - limit和order by 使用
1,使用的位置
SELECT select_list
[ INTO new_table ]
FROM table_source
[ WHERE search_condition ]
[ GROUP BY group_by_expression ]
[ HAVING search_condition ]
[ ORDER BY order_expression [ ASC | DESC ] ]
[LIMIT a,b]
可以看到:order by 和 limit 一般的顺序是在最后使用
2,limit 使用
limit start,count
start: 从start开始(初始为0)
count: 总共count条数据
例如:
# 创建一个数据库nowcoder,表salaries
CREATE DATABASE `nowcoder`
CREATE TABLE `salaries` (
`emp_no` INT(11) NOT NULL,
`salary` INT(11) NOT NULL,
`from_date` DATE NOT NULL,
`to_date` DATE NOT NULL,
PRIMARY KEY (`emp_no`,`from_date`));
INSERT INTO salaries VALUES(10001,88958,'2002-06-22','9999-01-01');
INSERT INTO salaries VALUES(10002,72527,'2001-08-02','9999-01-01');
INSERT INTO salaries VALUES(10003,43311,'2001-12-01','9999-01-01');
INSERT INTO salaries VALUES(10004,88958,'2002-06-22','9999-01-01');
INSERT INTO salaries VALUES(10005,72527,'2001-08-02','9999-01-01');
INSERT INTO salaries VALUES(10006,43311,'2001-12-01','9999-01-01');
#在上表中使用:
select * from salaries
limit 2,2
#会得到:1003,1004两条数据
3,order by 的使用
接上面的salaries表:
使用:
SELECT * FROM salaries
ORDER BY salary DESC
则会以salary字段的降序输出,默认升序
4, 合用
同接上表:
使用:
SELECT * FROM salaries
ORDER BY salary
LIMIT 0,4
则会输出以salary字段排序的最低的四条信息
5, 总结
使用order by, limit 可以实现top的操作 而且更加强大