SQL分頁的寫法主要有兩種:使用LIMIT和OFFSET關鍵字,以及使用ROW_NUMBER()函數。
SELECT * FROM 表名 LIMIT 每頁記錄數 OFFSET 起始位置;
其中,每頁記錄數表示每頁顯示的記錄數量,起始位置表示從第幾條記錄開始顯示。例如,如果要顯示第2頁,每頁顯示10條記錄,可以使用以下語句:
SELECT * FROM 表名 LIMIT 10 OFFSET 10;
SELECT *
FROM (
SELECT ROW_NUMBER() OVER (ORDER BY 排序字段) AS RowNum, *
FROM 表名
) AS temp
WHERE RowNum > 起始位置 AND RowNum <= (起始位置 + 每頁記錄數);
其中,排序字段表示按照哪個字段進行排序,起始位置表示從第幾條記錄開始顯示,每頁記錄數表示每頁顯示的記錄數量。例如,如果要顯示第2頁,每頁顯示10條記錄,可以使用以下語句:
SELECT *
FROM (
SELECT ROW_NUMBER() OVER (ORDER BY 排序字段) AS RowNum, *
FROM 表名
) AS temp
WHERE RowNum > 10 AND RowNum <= 20;
這兩種寫法可以根據需要選擇使用,使用LIMIT和OFFSET關鍵字的寫法簡單直觀,但在處理大數據量時可能性能較差;而使用ROW_NUMBER()函數的寫法相對復雜,但在處理大數據量時性能較好。