MySQL中提供了ORDER BY語法來對查詢結果進行排序,而ASC是ORDER BY中升序排序函數的關鍵詞。
SELECT * FROM table_name ORDER BY column_name ASC;
其中,table_name是要查詢的表名,column_name則是要進行排序的列名。ASC表示升序排列,這些語法的組合將返回按指定列名以及升序排列方式排列的結果集。
下面是一個例子,對學生表格按照成績列進行升序排序:
SELECT * FROM student ORDER BY grade ASC;
注意,如果想要降序排列,則需要使用DESC關鍵詞,如下所示:
SELECT * FROM student ORDER BY grade DESC;
當查詢結果集中出現相同的值時,MySQL提供了一些機制來確定其排列順序。現在假設在上面的例子中出現兩個或多個具有相同成績的學生,如何處理呢?
MySQL使用默認的排序機制,其依據是按照行中每個列值的大小進行排序。根據這個默認規則,如果成績值相同,則按照學生ID或名字進行排序。
如果想要按照其他規則排序,則可以使用多個ORDER BY子句,如下所示:
SELECT * FROM student ORDER BY grade ASC, name DESC;
在這個例子中,結果集會以成績升序排序,當出現相同值時,則按照名字降序排列。這里既提出了排序規則,也規定了每個規則的順序,直到所有條目都已經排列完成。