我有一張有很多數據的表,所以我檢索它並一次顯示一頁(我的請求很長,所以沒有辦法在整個表上運行它)。如何獲取MySql無限制返回的結果數量?
但我想分頁的結果,所以我需要知道什麼是我的表中的元素的總數。
如果我在同一個請求中執行COUNT(*)
,我得到選定元素的數量(在我的情況下爲10)。
如果我在第二個請求中對我的表執行COUNT(*)
,結果可能是錯誤的,因爲我的主查詢中的where,join和having子句。
什麼是最徹底的方法:
- 檢索數據
- 知道我的表元素的最大數量爲這個特定的請求
一種解決方案似乎是使用Mysql function FOUND_ROWS:
我試過這個,因爲mysql_query perfo同時RMS一個查詢:(採取here)
$query = 'SELECT SQL_CALC_FOUND_ROWS * FROM Users';
$result = mysql_query($query);
// fetching the results ...
$query = 'SELECT FOUND_ROWS()';
$ result = mysql_query($query);
// debug
while ($row = mysql_fetch_row($result)) {
print_r($row);
}
而且我得到0的結果數組:
Array ([0] => 0)
而我的查詢會返回結果。
我的方法有什麼問題?你有更好的解決方案嗎?
'mysql_num_rows()'? –
您沒有將結果存儲到任何位置的$ result變量...... – Vafliik
@MihaiIorga mysql_num_rows受LIMIT子句的影響。在我的情況下,它返回10. –