第六回:限制神通

—— SELECT TOP / LIMIT
👈 上一卷:门派管理 🏠 回到大竹峰 下一回:似是而非 👉

师姐,藏经阁里有十万卷经书,我若是一次性全搬出来(SELECT *),怕是要被压死。

贪多嚼不烂。修行讲究循序渐进,每次只取前几卷研读即可。这便是限制结果集的法门。

🚫 适可而止:LIMIT & TOP

📜 节制心法

不同的修仙门派(数据库系统)有不同的节制法门:

1. MySQL / PostgreSQL (青云门/天音寺通用)

SELECT * FROM Scrolls LIMIT 5;

解义: 只取前 5 卷经书。

2. SQL Server (焚香谷秘法)

SELECT TOP 5 * FROM Scrolls;

3. Oracle (南疆巫术 12c+)

SELECT * FROM Scrolls FETCH FIRST 5 ROWS ONLY;

🧘‍♂️ 试炼一:高手榜

结合 ORDER BY,我们可以找出修为最高的前三名弟子。

SELECT * FROM Disciples ORDER BY Power DESC LIMIT 3;

结果: 1. 道玄真人, 2. 万剑一, 3. 普智神僧

若是想取第 6 到第 10 名(比如想看看谁是中游水平),又该如何?

那便要用到 OFFSET(偏移)。

📜 隔空取物 (OFFSET)

-- 跳过前 5 个,取接下来的 5 个 SELECT * FROM Disciples ORDER BY Power DESC LIMIT 5 OFFSET 5;
⚠️ 师姐的性能课:
OFFSET 就像是翻书。如果你说 OFFSET 1000000,数据库还是得把前一百万页都翻一遍(扫描)然后丢掉,这非常慢!
在海量数据(大数据)修行中,尽量避免在大偏移量下使用 OFFSET,而应该用“记住上一页最后一名是谁”的方法(Keyset Pagination)。