我发现要从数据库$x
中选择有限数量的元素,我可以使用
$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。
我该怎么做?
答案 0 :(得分:1)
$m = $n-1;
$start = $m*$x;
$sql="SELECT * FROM user ORDER BY id LIMIT $start, $x";
答案 1 :(得分:1)
SELECT * FROM user ORDER BY id LIMIT 80,20
答案 2 :(得分:1)
<?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";
// ...
?>
答案 3 :(得分:0)
假设我们希望从名为“Orders”的表中选择1 - 30(含)的所有记录。 SQL查询将如下所示:
$sql = "SELECT * FROM Orders LIMIT 30";
当运行上面的SQL查询时,它将返回前30条记录。
如果我们想选择16 - 25(含)的记录怎么办?
Mysql还提供了一种处理方法:使用OFFSET。
下面的SQL查询说“只返回10条记录,从记录16开始(OFFSET 15)”:
$sql = "SELECT * FROM Orders LIMIT 10 OFFSET 15";
您还可以使用更短的语法来实现相同的结果:
$sql = "SELECT * FROM Orders LIMIT 15, 10";
请注意,使用逗号时数字会反转。
参考:Click here