菜鸟教程 -- 学的不仅是技术,更是梦想!

SQL 教程
(追記) (追記ここまで)

SQL ORDER BY 关键字


ORDER BY 关键字用于对结果集进行排序。


SQL ORDER BY 关键字

ORDER BY 关键字用于对结果集按照一个列或者多个列进行排序。

ORDER BY 关键字默认按照升序对记录进行排序。如果需要按照降序对记录进行排序,您可以使用 DESC 关键字。

SQL ORDER BY 语法

SELECT column1, column2, ...
FROM table_name
ORDER BY column1, column2, ... ASC|DESC;
  • column1, column2, ...:要排序的字段名称,可以为多个字段。
  • ASC:表示按升序排序。
  • DESC:表示按降序排序。


演示数据库

在本教程中,我们将使用 RUNOOB 样本数据库。

下面是选自 "Websites" 表的数据:

+----+--------------+---------------------------+-------+---------+
| id | name | url | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1 | Google | https://www.google.cm/ | 1 | USA |
| 2 | 淘宝 | https://www.taobao.com/ | 13 | CN |
| 3 | 菜鸟教程 | http://www.runoob.com/ | 4689 | CN |
| 4 | 微博 | http://weibo.com/ | 20 | CN |
| 5 | Facebook | https://www.facebook.com/ | 3 | USA |
+----+--------------+---------------------------+-------+---------+

ORDER BY 实例

下面的 SQL 语句从 "Websites" 表中选取所有网站,并按照 "alexa" 列排序:

实例

SELECT * FROMWebsitesORDERBYalexa;

执行输出结果:



ORDER BY DESC 实例

下面的 SQL 语句从 "Websites" 表中选取所有网站,并按照 "alexa" 列降序排序:

实例

SELECT * FROMWebsitesORDERBYalexaDESC;

执行输出结果:



ORDER BY 多列

下面的 SQL 语句从 "Websites" 表中选取所有网站,并按照 "country" 和 "alexa" 列排序:

实例

SELECT * FROMWebsitesORDERBYcountry,alexa;

执行输出结果:

AI 思考中...

3 篇笔记 写笔记

  1. #0

    ALLE

    riy***[email protected]

    1307

    ORDER BY 多列的时候,先按照第一个column name排序,在按照第二个column name排序;如上述教程最后一个例子:

    • 1)、先将country值这一列排序,同为CN的排前面,同属USA的排后面;
    • 2)、然后在同属CN的这些多行数据中,再根据alexa值的大小排列。
    • 3)、ORDER BY 排列时,不写明ASC DESC的时候,默认是ASC。

    ALLE

    riy***[email protected]

    9年前 (2017年08月22日)
  2. #0

    Lemon_shark

    jip***[email protected]

    1417

    ORDER BY 多列的时候,eg:

    order by A,B 这个时候都是默认按升序排列
    order by A desc,B 这个时候 A 降序,B 升序排列
    order by A ,B desc 这个时候 A 升序,B 降序排列

    desc 或者 asc 只对它紧跟着的第一个列名有效,其他不受影响,仍然是默认的升序。

    Lemon_shark

    jip***[email protected]

    8年前 (2018年07月15日)
  3. #0

    TERESA

    pmy***[email protected]

    293

    LIMIT 和 OFFSET 用法

    MySQL 里分页一般用 LIMIT 来实现:
    select* from article LIMIT 1,3
    与
    select * from article LIMIT 3 OFFSET 1

    上面两种写法都表示取 2、3、4 三条条数据:

    当 LIMIT 后面跟两个参数的时候,第一个数表示要跳过的数量,后一位表示要取的数量,例如:

    select* from article LIMIT 1,3 就是跳过 1 条数据,从第 2 条数据开始取,取 3 条数据,也就是取 2、3、4 三条数据。

    当 LIMIT 后面跟一个参数的时候,该参数表示要取的数据的数量。

    例如 select* from article LIMIT 3 表示直接取前三条数据,类似 sqlserver 里的 top 语法。

    当 LIMIT 和 OFFSET 组合使用的时候,LIMIT 后面只能有一个参数,表示要取的的数量,OFFSET表示要跳过的数量 。

    例如 select * from article LIMIT 3 OFFSET 1 表示跳过 1 条数据,从第 2 条数据开始取,取3条数据,也就是取 2、3、4 三条数据。

    TERESA

    pmy***[email protected]

    5年前 (2021年06月25日)

点我分享笔记

  • 昵称 (必填)
  • 邮箱 (必填)
  • 引用地址

AltStyle によって変換されたページ (->オリジナル) /