我有一個只顯示10行的列表。在mysql中選擇next/previous 10 rows
我需要選擇下10行和前10行。但是,我用作參考的ID並不完全按順序排列。 (例如1,2,5,10,15)。我如何選擇使用ID的接下來的幾行?
我有一個只顯示10行的列表。在mysql中選擇next/previous 10 rows
我需要選擇下10行和前10行。但是,我用作參考的ID並不完全按順序排列。 (例如1,2,5,10,15)。我如何選擇使用ID的接下來的幾行?
你可以嘗試限制:
select * from `table` limit <startIndex>,<NumberOfRecords>;
例如: -
select * from `user` limit 5,10;
這將返回從第6行開始的10行。
您可以使用限制 MySQL的關鍵字。
(
SELECT *
FROM mytable
WHERE id < $myid
ORDER BY
id DESC
LIMIT 10
)
UNION ALL
(
SELECT *
FROM mytable
WHERE id >= $myid
ORDER BY
id
LIMIT 10
)
ORDER BY
id
即時使用類似查詢。但是,我遇到的問題是與ID。一些行正在重複顯示。 – tep 2011-04-29 10:30:27
一個可能的查詢將是
SELECT * FROM mytable WHERE id > current_id LIMIT 10
爲10以前
SELECT * FROM mytable WHERE id < current_id ORDER BY id DESC LIMIT 10
首先選擇10第一值:
SELECT * FROM `leave_type` ORDER BY id asc limit 10;
然後
select * from `leave_type` limit 10, 10;
將在第10個值(範圍10)後顯示行,並從第11個開始。
是startindex的ID?我用什麼參考? – tep 2011-04-29 10:23:56
謝謝,我如何獲得startindex(行號)?對不起,在mysql中仍然是新的。 – tep 2011-04-29 10:25:23
@tep:如果您在列中有順序標識,則將id設爲rowNumber。 – 2011-04-29 10:26:29