php - 如何在Mysql中分页查询中获取5行以内的特定id

标签 php mysql

我在 php 中有一个函数,我用它来分页,如下所示:

$query = "SELECT id, 
      FROM table
      ORDER BY id ASC
      LIMIT $offset,5";

这个工作正常,但我想要的是获取包含 id 号(假设为 10)的页面以及其他 4 行,我希望它返回如下所示的内容:

  • 7,8,9,10,11,12 -> 如果我给它 ID 号 10。
  • 25,26,27,28,29 -> 如果我给它 ID 号 26 等等。

就像它会返回 5 行,但我想知道如何设置可以让我得到的偏移量 包含指定 id 的 5 行的页面。

我应该做什么,比如添加 where 子句或其他东西来得到我想要的东西!

最佳答案

请注意,如果删除某些行,表中的 ID 将不连续。下面的代码应该在这种情况下工作:

$result = mysql_query('select count(*) from table where id < ' . $someId);
$offset = mysql_result($result, 0, 0);

$result = mysql_query('select * from table order by id limit ' . max($offset - 2, 0) . ',5');
while ($row = mysql_fetch_assoc($result)) {
    print_r($row);
}

关于php - 如何在Mysql中分页查询中获取5行以内的特定id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21550112/

相关文章:

java - JDO/重复条目异常

java - 使用方法 createStatement() 时出错

mysql - 建立父子关系时更新不起作用

python - FastCGI 在 stderr : "Primary script unknown" - nginx and silex 中发送

javascript - 在没有服务器根访问权限的情况下构建聊天脚本的有效方法是什么

php - 日期和时间输入

mysql - 根据之前的值自动递增

php - Ajax 聊天系统每秒在控制台发送 XHR Finished Loading

php - 单个查询中的多个 mysql 更新

php - 如何在 2 个查询之间共享 connection_id?