师姐,藏经阁里有十万卷经书,我若是一次性全搬出来(SELECT *),怕是要被压死。
贪多嚼不烂。修行讲究循序渐进,每次只取前几卷研读即可。这便是限制结果集的法门。
不同的修仙门派(数据库系统)有不同的节制法门:
SELECT * FROM Scrolls
LIMIT 5;
解义: 只取前 5 卷经书。
SELECT TOP 5 * FROM Scrolls;
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(偏移)。
-- 跳过前 5 个,取接下来的 5 个
SELECT * FROM Disciples
ORDER BY Power DESC
LIMIT 5 OFFSET 5;
OFFSET 就像是翻书。如果你说 OFFSET 1000000,数据库还是得把前一百万页都翻一遍(扫描)然后丢掉,这非常慢!