第四回:长幼有序

—— ORDER BY 排序
👈 上一回:精准定位 🏠 回到大竹峰 下一回:门派管理 👉

七脉会武即将开始,我们需要一份按修为高低排列的弟子名单。

那我把名册拿出来,一个一个比对?

太慢了。用 ORDER BY 法诀,天书自会为你排好座次。

📊 论资排辈: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;

解义:

🏆 取前三甲:LIMIT

📜 榜单限制

七脉会武只奖励前三名,我们不需要把所有几千名弟子都列出来。

SELECT * FROM Disciples ORDER BY Power DESC LIMIT 3;

注意: 在 SQL Server 等其他门派中,这招叫 SELECT TOP 3 * ...

📜 分页之术 (OFFSET)

如果要看第 4 到第 6 名(第二页),该怎么办?

SELECT * FROM Disciples ORDER BY Power DESC LIMIT 3 OFFSET 3;

意思就是:先跳过前 3 个,再取 3 个。

哼,我们鬼王宗的人,从来都是强者为尊(DESC),谁跟你们讲长幼尊卑(ASC)!

⚠️ 心法要点

如果你不写 ASCDESC,系统默认就是 ASC

SELECT * FROM Disciples ORDER BY Name; -- 等同于 ORDER BY Name ASC