2011-09-11 32 views

回答

2
SELECT * FROM t WHERE j = k ORDER BY l LIMIT 20, 20 

限制由20(第二個),從偏移量20開始,第一。

1

SELECT * FROM t WHERE j = k ORDER BY l LIMIT 20 OFFSET 20;

限制說,你只需要20行,和偏移說,你不需要前20行。

請記住,當偏移值非常大時,您的查詢將會非常緩慢,因爲sql服務器將需要掃描第一行<offset>行以將<offset>+<limit>行返回給您。

1

您是否在the documentation中搜索?

LIMIT子句可以用於約束的行數由SELECT語句返回 。 LIMIT需要一個或兩個數字參數, ,它們都必須是非負整數常量(使用 準備語句時除外)。

使用兩個參數,第一個參數指定要返回的第一行的偏移量,第二個參數指定要返回的最大數量的行數 。初始行的偏移量是0(不是1)。

SELECT * FROM tbl LIMIT 5,10; # Retrieve rows 6-15 

對於兼容PostgreSQL,MySQL也支持LIMITrow_countOFFSEToffset語法。

1

LIMIT + OFFSET

SELECT * FROM t WHERE j = k ORDER BY l LIMIT 19,21 

注:

  • 偏移量是零基於這樣19 =開始於行20
  • 和有21行20之間和40包容
0

有解決方案: SELECT * FROM t WHERE j = k ORDER BY l limit 21,20; (21是行數,20是起始行,因此如果它們存在,您將從第20行到第40行檢索行)

相關問題