站長資訊網
最全最豐富的資訊網站

mysql怎么實現查詢并排序

在mysql中,可以利用SELECT語句和“ORDER BY”關鍵字來實現查詢排序功能,語法“SELECT * FROM 數據表名 ORDER BY 字段名 [ASC|DESC]”;如果設置“ASC”則可升序排序,“DESC”則可降序排序。

mysql怎么實現查詢并排序

本教程操作環境:windows7系統、mysql8版本、Dell G3電腦。

在mysql中,可以利用SELECT語句和“ORDER BY”關鍵字實現查詢排序效果。

SELECT 語句可以查詢數據,而ORDER BY關鍵字可以將查詢結果中的數據按照一定的順序進行排序

語法:

SELECT * FROM 數據表名 ORDER BY 字段名 [ASC|DESC]

語法說明如下。

  • 字段名:表示需要排序的字段名稱,多個字段時用逗號隔開。

  • ASC|DESCASC表示字段按升序排序;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 | +----+--------+---------+------+------+--------+------------+ 10 rows in set (0.08 sec)

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

多字段排序

下面通過一個具體的實例來說明當 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 | +--------+--------+ 10 rows in set (0.09 sec)

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

默認情況下,查詢數據按字母升序進行排序(A~Z),但數據的排序并不僅限于此,還可以使用 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 | +--------+--------+ 10 rows in set (0.00 sec)

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

贊(0)
分享到: 更多 (0)
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
亚洲精品电影天堂网| 久久国产精品久久精| 日韩少妇内射免费播放| 99视频全部免费精品全部四虎| 国产精品va无码一区二区| 久久伊人精品青青草原日本| 一级A毛片免费观看久久精品| 亚洲日韩国产一区二区三区| 美利坚永久精品视频在线观看| 精品国产一区二区三区香蕉| 97久久精品亚洲中文字幕无码| 无码精品A∨在线观看| 久久这里只有精品久久| 老司机精品免费视频| 国产精品亚洲产品一区二区三区| 日韩无套内射视频6| 日韩一区二区三区视频久久| 国产美女精品人人做人人爽| 亚洲AV永久无码精品一福利 | 韩国精品一区二区三区无码视频| 国产精品亚洲精品| 亚洲国产午夜精品理论片| 99re视频精品全部免费| 日韩精品少妇无码受不了| 久久精品中文字幕不卡一二区| 久久99国产精品二区不卡| 国产无套精品一区二区| 国内精品免费久久影院| 久久国产午夜精品一区二区三区| 国产99视频精品免费视频76 | 亚洲av午夜福利精品一区人妖| 国产亚洲婷婷香蕉久久精品| 亚洲精品夜夜夜妓女网| 亚洲精品国产精品乱码不卡√| 日韩精品亚洲aⅴ在线影院| 黑人大战亚洲人精品一区| 国语自产少妇精品视频| 久久久精品午夜免费不卡| 亚洲国产精品成人久久| 久久精品国产亚洲AV麻豆不卡| 久久国产乱子伦精品免费不卡|