MySQL ORDER BY

ORDER BY 关键字用于对结果集按照一个列或者多个列进行排序。
默认按照升序对记录进行排序。如果需要按照降序对记录进行排序,您可以使用 DESC 关键字。

语法
SELECT column_name,column_name
FROM table_name
ORDER BY column_name ASC|DESC,column_name ASC|DESC;
示例

Table(表):Movies

IdTitleDirectorYearLength_minutes
1Toy StoryJohn Lasseter199581
2A Bug’s LifeJohn Lasseter199895
3Monsters, Inc.Pete Docter200192
4Finding NemoFinding Nemo2003107
5The IncrediblesBrad Bird2004116
6CarsJohn Lasseter2006117
7Cars 2John Lasseter2011120

一、按单个列的值排序
【例1】从 “Movies” 表中按电影名字母序升序排列,列出前3部电影

SELECT * FROM Movies
ORDER BY Title ASC LIMIT 3;

查询结果如下:

IdTitleDirectorYearLength_minutes
1A Bug’s LifeJohn Lasseter199895
2CarsJohn Lasseter2006117
3Cars 2John Lasseter2011120

【例2】从 “Movies” 表中按电影名字母序升序排列,列出上一题之后的2部电影

SELECT * FROM Movies
ORDER BY Title ASC LIMIT 2 OFFSET 3;

查询结果如下:

IdTitleDirectorYearLength_minutes
1Finding NemoFinding Nemo2003107
2Monsters, Inc.Pete Docter200192

LIMIT 和 OFFSET 子句通常和ORDER BY 语句一起使用,当我们对整个结果集排序之后,我们可以 LIMIT来指定只返回多少行结果 ,用 OFFSET来指定从哪一行开始返回。你可以想象一下从一条长绳子剪下一小段的过程,我们通过 OFFSET 指定从哪里开始剪,用 LIMIT 指定剪下多少长度。

二、按多个列的值排序

【例3】从 “Movies” 表中按导演名字母升序,如果导演名相同按年份降序,取前4部电影

SELECT * FROM Movies
ORDER BY Director ASC,Year DESC LIMIT 4;

查询结果如下:

IdTitleDirectorYearLength_minutes
1The IncrediblesBrad Bird2004116
2Finding NemoFinding Nemo2003107
3Toy StoryJohn Lasseter199581
4A Bug’s LifeJohn Lasseter199895

影响:数据会先按照第一个字段排序(Director),如果第一个字段的值相同,再按照第二个字段(Year)排序!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柳絮吹成雪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值