$data = mysql_query("SELECT * FROM phpbb_posts ORDER BY post_id DESC LIMIT 4")
or die(mysql_error());
上面是我的代碼,我遇到了Limit部分的問題。
當我第一次設置它,似乎一切都完美,但我可以回來了幾個小時,並在頁面再看看和不同數量的記錄可以顯示,即使代碼是完全相同的。MYSQL限制不一致
任何想法如何解決這個問題?
$data = mysql_query("SELECT * FROM phpbb_posts ORDER BY post_id DESC LIMIT 4")
or die(mysql_error());
上面是我的代碼,我遇到了Limit部分的問題。
當我第一次設置它,似乎一切都完美,但我可以回來了幾個小時,並在頁面再看看和不同數量的記錄可以顯示,即使代碼是完全相同的。MYSQL限制不一致
任何想法如何解決這個問題?
數據不同,因爲自上次檢查頁面以來發布的帖子越多。您在post_id
訂購,其中最高價值將是最近的帖子。
保留以前記錄的最簡單方法是緩存數據 - 存儲它。但是,然後緩存需要知道何時刷新緩存 - 否則它永遠不會改變。
如果有日期/時間列,您可以使用它來在應用LIMIT之前過濾結果。但它必須足夠寬才能獲得至少四條記錄。與日期相同的問題需要考慮 - 在某些時候,您希望這些日期發生變化,或者頁面提供的數據永遠不會改變。
您不指定返回多少記錄與您有關。 LIMIT應該返回4條記錄的最大值,如果沒有至少4條記錄會被您的查詢返回,則返回最少值。如果你有超過4條記錄返回,那麼你有問題。
你是指「不同數量的記錄」是什麼意思?多少? 3? 5? 0? – 2010-08-22 18:07:18
我們需要查看代碼的其餘部分。該查詢將始終返回四個或更少的結果;你的問題不在這裏。 – Borealid 2010-08-22 18:07:45