-
OFFSET 意指 忽略前 M 項 row (exclude)。
- 在做分頁結果,每頁只呈現 N 筆資料時很好用。
-
M 的規則如同先前提到 LIMIT N 的 N 。除了 N 是 include 但 M 是 exclude 。
-
如果 M > 所有的搜尋結果 row 就不會有資料結果。
-
OFFSET 應於 LIMIT 語法之後。
-
LIMIT N OFFSET M 執行結果等同於 LIMIT M,N ,為避免(人眼)混淆仍建議前者語法。
資料庫內容:
| -- | NoteId | Word | MeaningInChinese |
|---|---|---|---|
| 1 | 1 | tweezers | 鑷子 |
| 2 | 2 | clothespin | 洗衣夾 |
| 3 | 3 | clothesline | 曬衣繩 |
| 4 | 4 | flashlight | 手電筒 |
SELECT * FROM EnglishVocabularyNote
LIMIT 2 OFFSET 1| -- | NoteId | Word | MeaningInChinese |
|---|---|---|---|
| 1 | 2 | clothespin | 洗衣夾 |
| 2 | 3 | clothesline | 曬衣繩 |
(這個資料庫只有四筆資料)
SELECT * FROM EnglishVocabularyNote
WHERE NoteId > 0
LIMIT 3 OFFSET 4
- OFFSET 置於 LIMIT 之後。
SELECT * FROM EnglishVocabularyNote
WHERE NoteId > 0
LIMIT 3 OFFSET 0| -- | NoteId | Word | MeaningInChinese |
|---|---|---|---|
| 1 | 1 | tweezers | 鑷子 |
| 2 | 2 | clothespin | 洗衣夾 |
| 3 | 3 | clothesline | 曬衣繩 |
- OFFSET 置於 LIMIT 之前的話......
SELECT * FROM EnglishVocabularyNote
WHERE NoteId > 0
OFFSET 0 LIMIT 3Execution finished with errors.
Result: near "OFFSET": syntax error
At line 1:
SELECT * FROM EnglishVocabularyNote
WHERE NoteId > 0
OFFSET
- 單獨只有 OFFSET 而沒有 LIMIT 的話......
SELECT * FROM EnglishVocabularyNote
WHERE NoteId > 0
OFFSET 0Execution finished with errors.
Result: near "OFFSET": syntax error
At line 1:
SELECT * FROM EnglishVocabularyNote
WHERE NoteId > 0
OFFSET
前項語法:
SELECT * FROM EnglishVocabularyNote
WHERE NoteId > 0
LIMIT 3 OFFSET 0結果等價:
SELECT * FROM EnglishVocabularyNote
WHERE NoteId > 0
LIMIT 0,3| -- | NoteId | Word | MeaningInChinese |
|---|---|---|---|
| 1 | 1 | tweezers | 鑷子 |
| 2 | 2 | clothespin | 洗衣夾 |
| 3 | 3 | clothesline | 曬衣繩 |