七脉会武即将开始,我们需要一份按修为高低排列的弟子名单。
那我把名册拿出来,一个一个比对?
太慢了。用 ORDER BY 法诀,天书自会为你排好座次。
ORDER BY 关键字用于对结果集进行排序。默认是升序(从小到大)。
SELECT column1, column2, ...
FROM table_name
ORDER BY column1, column2, ... ASC|DESC;
我们想看看谁是门派里的最强王者,需要按修为 (Power) 从高到低 (DESC) 排序。
SELECT * FROM Disciples
ORDER BY Power DESC;
结果: 陆雪琪 (9999) 排在第一,张小凡 (100) 此时可能还在倒数。
有时一个规则不够。比如:先按门派 (Sect) 归类(字母顺序),同一个门派里再按年龄 (Age) 从大到小排。
SELECT * FROM Disciples
ORDER BY Sect ASC, Age DESC;
解义:
Sect。'GuiWang' (G) 会排在 'QingYun' (Q) 前面。Age,年纪大的排前面。七脉会武只奖励前三名,我们不需要把所有几千名弟子都列出来。
SELECT * FROM Disciples
ORDER BY Power DESC
LIMIT 3;
注意: 在 SQL Server 等其他门派中,这招叫 SELECT TOP 3 * ...。
如果要看第 4 到第 6 名(第二页),该怎么办?
SELECT * FROM Disciples
ORDER BY Power DESC
LIMIT 3 OFFSET 3;
意思就是:先跳过前 3 个,再取 3 个。
哼,我们鬼王宗的人,从来都是强者为尊(DESC),谁跟你们讲长幼尊卑(ASC)!
如果你不写 ASC 或 DESC,系统默认就是 ASC。
SELECT * FROM Disciples ORDER BY Name;
-- 等同于 ORDER BY Name ASC