Mysql 查询语句(五)

排序——order by

对所查询出来的字段按照要求进行排序

--asc从小到大排序,也就是我们所说的升序
--desc从大到小排序,也就是我们所说的降序
--示例:
	--查询年龄在18到34岁之间的男性,按照年龄从小到大排序
	select * from students where (age between 18 and 34) and gender = 1;
	--这个我们查询出了年龄在18到34岁之间的男性,下面我们用order by进行排序
	select * from students where (age between 18 and 34) and gender = 1 order by age;
	--注意:order by 默认使用升序,也就是asc,一般asc省略不写,需要倒序使用desc
	--我们来试下倒叙的
	--查询年龄在18到34岁之间的女性,身高从高到矮排序
	select * from students where (age between 18 and 34) and gender = 2 order by height desc;

as排序问题 mysql select mysql排序查询语句_字段

order by 后面也可跟多个字段,而不是只能跟一个,意思就是在第一个字段排完后,如果有相同的,就按照第二个来,如果还相同就按照第三个来,后面以此类推。下面我么你来实际看看

--查询年龄在18到34之间的女性,身高从高到矮排序,如果身高相同,就按照年龄从大到小排序
select * from students where (age between 18 and 34)and gender = 2 order by height desc,age asc;

as排序问题 mysql select mysql排序查询语句_升序_02


这里我们看到小明和小月月身高年龄凑=都相同,那么我们继续在order by 后面加字段来排序就行了,这里我们就按照ID从小到大来

例:select * from students where (age between 18 and 34)and gender = 2 order by height desc,ageasc,id asc;

as排序问题 mysql select mysql排序查询语句_升序_03

分页——limit start, count

--限制查询出来的个数
select * from students limit 2;

as排序问题 mysql select mysql排序查询语句_as排序问题 mysql select_04

limit start, count
staart 表示从哪个位置开始,其实下标,下标从零开始
count 表示几条数据
--查询前五条数据
select * from students limit 0, 5;
--查询id 6-10(包括) 的数据
select * from students limit 5, 5;
--查询id 11-15(包括) 的数据
select * from students limit 10, 5;

as排序问题 mysql select mysql排序查询语句_字段_05


as排序问题 mysql select mysql排序查询语句_as排序问题 mysql select_06


as排序问题 mysql select mysql排序查询语句_mysql_07


这里我们看到只有四条数据,当count值不够时,我们会显示最多的,有几条数据就显示几条数据。

我们来看一个规律:

--每页显示两个,第一页
select * from limit 0,2;
--每页显示两个,第二页
select * from limit 2,2;
--每页显示两个,第三页
select * from limit 4,2;
--每页显示两个,第四页
select * from limit 6,2;

--从上面我们可以看出来
limit后面跟的两个数得规律 ———— limit (第N-1)*每个的个数, 每页的个数
--我们试一下:
--每页显示两个,显示第六页得信息,按照年龄从小到大排序
select * from students limit 2*(6-1),2;
select * from students limit 10, 2 order by age asc;(我们看下这两条语句执行结果)

as排序问题 mysql select mysql排序查询语句_mysql_08

这里他给我们报了两个错误,第一个是因为它不认识2*(6-1) 这个东西,所以我们写得时候要把他计算出来,不要写表达式在上面;第二个是因为limitorder by 前面,这样有语法错误,我么你记住limit在最后就行了。

select * from students order by age asc limit 10, 2;
--

as排序问题 mysql select mysql排序查询语句_数据_09


这些就是分页——limit的用法,下次我么你介绍连接查询,连接查询就关系到表与表之间的联系!