我們先用一個比喻來引出截斷和偏移的概念。
假設你有一張待辦事項清單,上面有很多工。當你每次只想檢視其中的幾個任務時,會怎麼辦呢?
1)你可以使用手指擋住不需要看的部分(即截斷)
2)根據任務的編號,直接翻到需要檢視的位置(即偏移)
在 SQL 中,我們使用 LIMIT 關鍵字來實現資料的截斷和偏移。
截斷和偏移的一個典型的應用場景是分頁,即網站內容很多時,使用者可以根據頁號每次只看部分資料。
示例
假設有一張名為tasks
的資料表,它儲存了待辦事項資訊,包括任務名稱(task_name)和截止日期(due_date)等。
資料表tasks
:
task_name | due_date |
---|---|
完成報告 | 2023-08-05 |
預約醫生 | 2023-08-08 |
購買禮物 | 2023-08-10 |
安排旅行 | 2023-08-15 |
現在,我們使用LIMIT
關鍵字來進行分頁查詢:
-- LIMIT 後只跟一個整數,表示要截斷的資料條數(一次獲取幾條)
select task_name, due_date from tasks limit 2
-- LIMIT 後跟 2 個整數,依次表示從第幾條資料開始、一次獲取幾條
select task_name, due_date from tasks limit 2, 2
查詢語句 1 結果,只獲取了 2 條資料:
task_name | due_date |
---|---|
完成報告 | 2023-08-05 |
預約醫生 | 2023-08-08 |
查詢語句 2 結果,從下標為 2(第 3 條)資料的位置開始獲取 2 條資料(類似數列a[3]以a[0]開頭):
task_name | due_date |
---|---|
購買禮物 | 2023-08-10 |
安排旅行 | 2023-08-15 |
透過上述 SQL 查詢語句,我們分別選取了待辦事項表中的前兩個任務和從第三個任務開始的兩個任務,實現了資料的截斷和偏移。