如果我们想要排序我们筛选出来的结果,比如说,按年龄从大到小排序,按单价从便宜到贵排序,应该怎么做呢?
我们会用到ORDER BY关键字,语法如下:
SELECT column, another_column, …
FROM table
WHERE condition(s)
ORDER BY column ASC/DESC
在这里,ASC 和 DESC 的意思分别是升序和降序, asc 是ascend,升序的意思,1,2,3,4,5就是升序。而DESC 是descend, 降序的意思,5,4,3,2,1就是降序。
我们来举个栗子实践一下:
这是一个消费者的表,表名为:consumer
我们想让他按照年龄升序排序,应该这样来写:
SELECT * FROM consumer
ORDER BY age ASC
输出结果为:
那如果我们只想看女性的消费者,并且按年龄的降序排序呢?
SELECT * FROM consumer
WHERE gender LIKE "F"
ORDER BY age DESC
LIMIT 和 OFFSET 子句
LIMIT 和 OFFSET 子句通常和ORDER BY 语句一起使用,当我们对整个结果集排序之后,我们可以 LIMIT 来指定要返回多少行结果 , 用 OFFSET来指定从哪一行开始返回。(如果offset 3,就是从第四行开始)
意思就是说,LIMIT决定数量,OFFSET决定起点。
语法如下:
SELECT column, another_column, …FROM table
WHERE condition(s)
ORDER BY column ASC/ DESC
LIMIT num OFFSET num
举个栗子,我只想要consumer表格里,年龄最小的三个consumer,我应该怎么写呢?
答案:
SELECT * FROM consumer
ORDER BY age DESC
LIMIT 3
输出:
那如果想要他从第三位开始算起呢?
我们应该这么写:
SELECT * FROM consumer
ORDER BY age DESC
LIMIT 3
OFFSET 2
这就是关于order by的复习啦~
喜欢的话可以收藏~也可以给兔子点个赞噢~奥利给!