日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

5、ORDER BY:对查询结果排序

發(fā)布時間:2025/3/20 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 5、ORDER BY:对查询结果排序 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

通過條件查詢語句可以查詢到符合用戶需求的數(shù)據(jù),但是查詢到的數(shù)據(jù)一般都是按照數(shù)據(jù)最初被添加到表中的順序來顯示。為了使查詢結果的順序滿足用戶的要求,MySQL 提供了 ORDER BY 關鍵字來對查詢結果進行排序。

在實際應用中經(jīng)常需要對查詢結果進行排序,比如,在網(wǎng)上購物時,可以將商品按照價格進行排序;在醫(yī)院的掛號系統(tǒng)中,可以按照掛號的先后順序進行排序等。

ORDER BY 關鍵字主要用來將查詢結果中的數(shù)據(jù)按照一定的順序進行排序。其語法格式如下:

ORDER BY <字段名> [ASC|DESC]

語法說明如下。

  • 字段名:表示需要排序的字段名稱,多個字段時用逗號隔開。
  • ASC|DESC:ASC表示字段按升序排序;DESC表示字段按降序排序。其中ASC為默認值。

使用 ORDER BY 關鍵字應該注意以下幾個方面:

  • ORDER BY 關鍵字后可以跟子查詢
  • 當排序的字段中存在空值時,ORDER BY 會將該空值作為最小值來對待。
  • ORDER BY 指定多個字段進行排序時,MySQL 會按照字段的順序從左到右依次進行排序。

單字段排序

下面通過一個具體的實例來說明當 ORDER BY 指定單個字段時,MySQL 如何對查詢結果進行排序。

例 1
下面查詢 tb_students_info 表的所有記錄,并對 height 字段進行排序,SQL 語句和運行結果如下。

mysql> SELECT * FROM tb_students_info ORDER BY height; +----+--------+---------+------+------+--------+------------+ | id | name | dept_id | age | sex | height | login_date | +----+--------+---------+------+------+--------+------------+ | 2 | Green | 3 | 23 | F | 158 | 2016-10-22 | | 1 | Dany | 1 | 25 | F | 160 | 2015-09-10 | | 4 | Jane | 1 | 22 | F | 162 | 2016-12-20 | | 7 | Lily | 6 | 22 | F | 165 | 2016-02-26 | | 10 | Tom | 4 | 23 | M | 165 | 2016-08-05 | | 8 | Susan | 4 | 23 | F | 170 | 2015-10-01 | | 6 | John | 2 | 21 | M | 172 | 2015-11-11 | | 5 | Jim | 1 | 24 | M | 175 | 2016-01-15 | | 9 | Thomas | 3 | 22 | M | 178 | 2016-06-07 | | 3 | Henry | 2 | 23 | M | 185 | 2015-05-31 | +----+--------+---------+------+------+--------+------------+

由結果可以看到,MySQL 對查詢的 height 字段的數(shù)據(jù)按數(shù)值的大小進行了升序排序。

多字段排序

下面通過一個具體的實例來說明當 ORDER BY 指定多個字段時,MySQL 如何對查詢結果進行排序。

例 2
查詢 tb_students_info 表中的 name 和 height 字段,先按 height 排序,再按 name 排序,SQL 語句和運行結果如下。

mysql> SELECT name,height FROM tb_students_info ORDER BY height,name; +--------+--------+ | name | height | +--------+--------+ | Green | 158 | | Dany | 160 | | Jane | 162 | | Lily | 165 | | Tom | 165 | | Susan | 170 | | John | 172 | | Jim | 175 | | Thomas | 178 | | Henry | 185 | +--------+--------+

注意:在對多個字段進行排序時,排序的第一個字段必須有相同的值,才會對第二個字段進行排序。如果第一個字段數(shù)據(jù)中所有的值都是唯一的,MySQL 將不再對第二個字段進行排序。

默認情況下,查詢數(shù)據(jù)按字母升序進行排序(A~Z),但數(shù)據(jù)的排序并不僅限于此,還可以使用 ORDER BY 中的 DESC 對查詢結果進行降序排序(Z~A)。

例 3
查詢 tb_students_info 表,先按 height 降序排序,再按 name 升序排序,SQL 語句和運行結果如下。

mysql> SELECT name,height FROM tb_student_info ORDER BY height DESC,name ASC; +--------+--------+ | name | height | +--------+--------+ | Henry | 185 | | Thomas | 178 | | Jim | 175 | | John | 172 | | Susan | 170 | | Lily | 165 | | Tom | 165 | | Jane | 162 | | Dany | 160 | | Green | 158 | +--------+--------+

DESC 關鍵字只對前面的列進行降序排列,在這里只對 height 字段進行降序。因此,height 按降序排序,而 name 仍按升序排序。如果想在多個列上進行降序排序,必須對每個列指定 DESC 關鍵字。

總結

以上是生活随笔為你收集整理的5、ORDER BY:对查询结果排序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。