我發現,從數據庫中選擇$x
元素的數量有限的n組,我可以使用如何檢索多個元素
$sql="SELECT * FROM user ORDER BY id LIMIT $x";
所以如果$ X = 10這個查詢將檢索第10來自數據庫的元素。
但我怎麼能檢索的第n個元素$x
?
例如,如果$n=5
和$x=20
我想要檢索20個元素,以便20個元素成爲數據庫中的第5個20個元素,對於此示例,數據庫中的80-100個元素是他們的ID。
我怎麼能這樣做?
我發現,從數據庫中選擇$x
元素的數量有限的n組,我可以使用如何檢索多個元素
$sql="SELECT * FROM user ORDER BY id LIMIT $x";
所以如果$ X = 10這個查詢將檢索第10來自數據庫的元素。
但我怎麼能檢索的第n個元素$x
?
例如,如果$n=5
和$x=20
我想要檢索20個元素,以便20個元素成爲數據庫中的第5個20個元素,對於此示例,數據庫中的80-100個元素是他們的ID。
我怎麼能這樣做?
<?php
$entriesPerPage = 20; // Amount of results shown per page
$activePage = 5; // The active page
$offset = ($activePage - 1) * $entriesPerPage;
$sql = "SELECT * FROM `user` ORDER BY `id` LIMIT $offset, $entriesPerPage";
// ...
?>
$m = $n-1;
$start = $m*$x;
$sql="SELECT * FROM user ORDER BY id LIMIT $start, $x";
SELECT * FROM user ORDER BY id LIMIT 80,20
假設我們要選擇1所有記錄 - 30(含)從一個名爲 「訂單」 表。然後,SQL查詢應該是這樣的:
$sql = "SELECT * FROM Orders LIMIT 30";
當上面的SQL查詢運行時,它會返回第30條記錄。
如果我們要選擇記錄什麼16 - 25(含)?
MySQL還提供了一種方法來處理這個問題:通過使用抵消。
SQL查詢的下面寫着 「只返回10條記錄,開始記錄16(OFFSET 15)」:
$sql = "SELECT * FROM Orders LIMIT 10 OFFSET 15";
您也可以使用更短的語法來達到相同的結果:
$sql = "SELECT * FROM Orders LIMIT 15, 10";
注意,當你使用一個逗號的數字顛倒。
參考:Click here
「LIMIT」的第二個參數表示結果的數量,而不是偏移量。 –