作爲評論總是有它,你可以選擇顯示前5個評論(我知道如何),如果超過5,你可以點擊一個鏈接,它會顯示以下5條評論。問題是,我不知道該代碼應該如何爲它顯示我在說什麼 比方說,我有10條評論中,我使用如何選擇TOP 5,然後選擇以下5?
下一個5
更好的主意SELECT * FROM新聞ORDER BY ID DESC LIMIT 5
,將顯示前5評論說,ID爲10,9,8,7,6
但什麼意見,如果我要評論ID爲5,4,3,2,1?
作爲評論總是有它,你可以選擇顯示前5個評論(我知道如何),如果超過5,你可以點擊一個鏈接,它會顯示以下5條評論。問題是,我不知道該代碼應該如何爲它顯示我在說什麼 比方說,我有10條評論中,我使用如何選擇TOP 5,然後選擇以下5?
下一個5
更好的主意SELECT * FROM新聞ORDER BY ID DESC LIMIT 5
,將顯示前5評論說,ID爲10,9,8,7,6
但什麼意見,如果我要評論ID爲5,4,3,2,1?
SELECT * FROM news ORDER BY ID DESC LIMIT 5, 5
假設你使用MySQL,LIMIT
支持兩個參數,offset
(可選)和row_count
:
[LIMIT {[offset,] row_count | row_count OFFSET offset}]
使用OFFSET
的替代方法是爲了與PostgreSQL兼容。要做到這一點
我假設你正在談論的MySQL,那麼你的答案是:
SELECT * FROM news ORDER BY ID DESC LIMIT 5 OFFSET 5
一種方式,是味道無關的是:
SELECT TOP 5 *
FROM table
WHERE pk NOT IN (SELECT TOP (page * 5) pk
FROM table
ORDER BY pk)
ORDER BY pk
如果你想顯示的所有文字前五的意見(從到Joscha您的評論採取的),然後再過五條評論但使用縮短的文本或只是標題,您不應該使用兩個SQL查詢,而應該在應用程序邏輯中執行此操作。
所以選擇所有的新聞條目:
SELECT id, title, body, date FROM news ORDER BY id DESC LIMIT 10
然後遍歷你的結果。顯示前五個不同於接下來的五個。
當你想擁有什麼分頁程序,一樣可以下手,說0頁:
$page = isset($_GET['page'] ? intval($_GET['page']) : 0;
SELECT id, title, body, date FROM news ORDER BY id DESC LIMIT 5 OFFSET $page * 5 + 5;
這是一個客戶端的事情。
顯示5,隱藏其餘部分直到點擊。喜歡這個網站:沒有回電得到剩下的隱藏評論。
對不起,我忘了提及MySQL以及我的壞。 是的,感謝您的回覆,我谷歌抵消(從來沒有聽說過它),有點知道它是如何工作的。但是我應該怎麼做,首先它顯示TOP 5,並且點擊一個鏈接,它會顯示以下5個等等? 我應該使用get函數並將該值用於選擇參數嗎? – Crays 2010-03-20 12:29:02