共計 2628 個字符,預計需要花費 7 分鐘才能閱讀完成。
本篇內(nèi)容主要講解“mysql 如何實現(xiàn)查詢并排序”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓丸趣 TV 小編來帶大家學習“mysql 如何實現(xiàn)查詢并排序”吧!
在 mysql 中,可以利用 SELECT 語句和“ORDER BY”關(guān)鍵字來實現(xiàn)查詢排序功能,語法“SELECT * FROM 數(shù)據(jù)表名 ORDER BY 字段名 [ASC|DESC]”;如果設置“ASC”則可升序排序,“DESC”則可降序排序。
本教程操作環(huán)境:windows7 系統(tǒng)、mysql8 版本、Dell G3 電腦。
在 mysql 中,可以利用 SELECT 語句和“ORDER BY”關(guān)鍵字實現(xiàn)查詢排序效果。
SELECT 語句可以查詢數(shù)據(jù),而 ORDER BY 關(guān)鍵字可以將查詢結(jié)果中的數(shù)據(jù)按照一定的順序進行排序
語法:
SELECT * FROM 數(shù)據(jù)表名 ORDER BY 字段名 [ASC|DESC]
語法說明如下。
字段名:表示需要排序的字段名稱,多個字段時用逗號隔開。
ASC|DESC:ASC 表示字段按升序排序;DESC 表示字段按降序排序。其中 ASC 為默認值。
使用 ORDER BY 關(guān)鍵字應該注意以下幾個方面:
ORDER BY 關(guān)鍵字后可以跟子查詢。
當排序的字段中存在空值時,ORDER BY 會將該空值作為最小值來對待。
ORDER BY 指定多個字段進行排序時,MySQL 會按照字段的順序從左到右依次進行排序。
單字段排序
下面通過一個具體的實例來說明當 ORDER BY 指定單個字段時,MySQL 如何對查詢結(jié)果進行排序。
例 1
下面查詢 tb_students_info 表的所有記錄,并對 height 字段進行排序,SQL 語句和運行結(jié)果如下。
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)
由結(jié)果可以看到,MySQL 對查詢的 height 字段的數(shù)據(jù)按數(shù)值的大小進行了升序排序。
多字段排序
下面通過一個具體的實例來說明當 ORDER BY 指定多個字段時,MySQL 如何對查詢結(jié)果進行排序。
例 2
查詢 tb_students_info 表中的 name 和 height 字段,先按 height 排序,再按 name 排序,SQL 語句和運行結(jié)果如下。
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)
注意:在對多個字段進行排序時,排序的第一個字段必須有相同的值,才會對第二個字段進行排序。如果第一個字段數(shù)據(jù)中所有的值都是唯一的,MySQL 將不再對第二個字段進行排序。
默認情況下,查詢數(shù)據(jù)按字母升序進行排序(A~Z),但數(shù)據(jù)的排序并不僅限于此,還可以使用 ORDER BY 中的 DESC 對查詢結(jié)果進行降序排序(Z~A)。
例 3
查詢 tb_students_info 表,先按 height 降序排序,再按 name 升序排序,SQL 語句和運行結(jié)果如下。
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 關(guān)鍵字只對前面的列進行降序排列,在這里只對 height 字段進行降序。因此,height 按降序排序,而 name 仍按升序排序。如果想在多個列上進行降序排序,必須對每個列指定 DESC 關(guān)鍵字。
到此,相信大家對“mysql 如何實現(xiàn)查詢并排序”有了更深的了解,不妨來實際操作一番吧!這里是丸趣 TV 網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學習!