我发现,从数据库中选择$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”的第二个参数表示结果的数量,而不是偏移量。 –