MySQL基礎(chǔ)知識——ORDER BY
點(diǎn)擊關(guān)注上方“SQL數(shù)據(jù)庫開發(fā)”,
設(shè)為“置頂或星標(biāo)”,第一時間送達(dá)干貨
ORDER BY作用
ORDER BY 關(guān)鍵字用于對結(jié)果集進(jìn)行排序。
ORDER BY 關(guān)鍵字
ORDER BY 關(guān)鍵字用于按升序(ASC)或降序(DESC)對結(jié)果集進(jìn)行排序。
ORDER BY 關(guān)鍵字默認(rèn)情況下按升序(ASC)排序記錄,默認(rèn)排序可以不寫ASC。
如果需要按降序?qū)τ涗涍M(jìn)行排序,可以使用DESC關(guān)鍵字,不可省略。
ORDER BY 語法
SELECT?column1,?column2,?...?FROM?table_name
ORDER?BY?column1,?column2,?...?ASC|DESC;
示例數(shù)據(jù)庫
以下是?"Customers"?表中的數(shù)據(jù):

ORDER BY 實(shí)例
下面的 SQL 語句從 "Customers" 表中選取所有客戶,并按照 "省份" 列排序:
實(shí)例:
SELECT * FROM Customers
ORDER BY 省份;結(jié)果:

這里排序方式默認(rèn)是升序。這里排序規(guī)則,是按照省份里的拼音首字母的ASCII規(guī)則排序的。例如北京市首字母是B,廣東省的首字母是G,湖北省的首字母是H,上海市的首字母是S,浙江省的首字母是Z。排序后就是上述結(jié)果了,如果排序的首字母相同,則比較第二位字母,依次類推。
ORDER BY DESC 實(shí)例
下面的 SQL 語句從 "Customers" 表中選取所有客戶,并按照 "省份" 列降序排序:
實(shí)例:
SELECT * FROM Customers
ORDER BY 省份 DESC;結(jié)果:
加了DESC后排序方式變成了降序,排序規(guī)則與升序相反。
ORDER BY 多列 實(shí)例
為了讓大家更加好理解,我們在Customers表中添加兩行數(shù)據(jù)。
INSERT?INTO?`Customers`?(客戶ID,姓名,地址,城市,郵編,省份)
VALUES
( 6, '宋一', '花城大道21號', '廣州', '510000', '廣東省'?);
INSERT?INTO?`Customers`?(客戶ID,姓名,地址,城市,郵編,省份)
VALUES
( 7, '劉二', '長安街121號', '北京', '100000', '北京市'?);添加數(shù)據(jù)后的Customers表如下:

下面的 SQL 語句從 "Customers" 表中選取所有客戶,并按照 "省份" 和 "姓名" 列排序:
示例
SELECT * FROM Customers
ORDER BY 省份, 姓名;結(jié)果:

可以看到,對省份排序的時候,北京市和廣東省各出現(xiàn)了兩條。這時候再對姓名這一列的拼音首字母進(jìn)行排序。在省份一致的前提下,劉二的首字母是L,趙七的首字母是Z,所以劉二排在趙七的前面。同理宋一的首字母是S,王五的首字母是W,所以宋一排在王五的前面。
ORDER BY 多列 實(shí)例2
以下SQL語句從"Customers"?表中選擇所有客戶,按?"省份"?升序排列,并按?"姓名"?列降序排列:
SELECT * FROM Customers
ORDER BY 省份 ASC, 姓名 DESC;結(jié)果:

對姓名進(jìn)行降序排列后,姓名的排序結(jié)果與升序相反。
SELECT?* FROM?Customers
ORDER?BY?`省份`
LIMIT?3結(jié)果為:

結(jié)果只顯示了排好序的前三位客戶信息。
——End——
后臺回復(fù)關(guān)鍵字:1024,獲取一份精心整理的技術(shù)干貨 后臺回復(fù)關(guān)鍵字:進(jìn)群,帶你進(jìn)入高手如云的交流群。 推薦閱讀
為什么阿里巴巴禁止使用存儲過程? 一份非常完整的 MySQL 規(guī)范,速速收藏! 數(shù)據(jù)庫中為什么不推薦使用外鍵約束 阿里規(guī)定超過3張表,禁止JOIN,為何? MySQL 常用命令手冊
這是一個能學(xué)到技術(shù)的公眾號,歡迎關(guān)注
點(diǎn)擊「閱讀原文」了解SQL訓(xùn)練營

