我们使用下面SQL来展示各种limit的写法和效果:
WITH RECURSIVE cte (Number) AS (
SELECT 1 -- base case returns 1
UNION ALL
SELECT Number + 1 -- recursive case returns 1 + previous value
FROM cte
WHERE Number < 100
)
SELECT Number
FROM cte
ORDER BY Number
上面这个SQL会显示 100行数据,分别从1到100。
limit后面跟一个参数
当 limit后面跟一个参数的时候,该参数表示要取的数据的数量。
WITH RECURSIVE cte (Number) AS (
SELECT 1 -- base case returns 1
UNION ALL
SELECT Number + 1 -- recursive case returns 1 + previous value
FROM cte
WHERE Number < 100
)
SELECT Number
FROM cte
ORDER BY Number
limit 2
limit后面跟两个参数
当limit后面跟两个参数的时候,第一个数表示要跳过的数量,后一位表示要取的数量。
WITH RECURSIVE cte (Number) AS (
SELECT 1 -- base case returns 1
UNION ALL
SELECT Number + 1 -- recursive case returns 1 + previous value
FROM cte
WHERE Number < 100
)
SELECT Number
FROM cte
ORDER BY Number
limit 2,5
limit和offset组合使用
当 limit和offset组合使用的时候,limit后面只能有一个参数,表示要取的的数量,offset表示要跳过的数量 。
WITH RECURSIVE cte (Number) AS (
SELECT 1 -- base case returns 1
UNION ALL
SELECT Number + 1 -- recursive case returns 1 + previous value
FROM cte
WHERE Number < 100
)
SELECT Number
FROM cte
ORDER BY Number
limit 2 offset 5