mysql - SELECT LIMIT ORDER BY 从自动递增 id 中的任意列值开始

标签 mysql sql-order-by limit

我是一个走中间道路的人。我可以处理客户端/服务器端,但 CSS 和数据库让我感到困惑。

我什至不知道如何提出这个问题。

在 LAMP 环境中,我想从 View 中返回 LIMIT 20,按日期列排序。我无法弄清楚或无法放入正确的 google/stack 术语中的问题是,我希望 LIMIT 以自动增量 ID 列中的任意值开头。

我可以通过将电话簿返回到 PHP 中来对其进行哈希处理,然后从那里开始,但我不知道什么是最有效的:将其放在数据库或服务器端。我应该让MySQL(如果可能的话)吐出20个值,从排序日期产生的某个点开始,但基于自动增量id,或者我应该将所有内容输出到服务器端,找到数组中的点我正在寻找的值,并返回该值和随后的 19 个值?

如果从数据库返回它更有效,有人可以帮我选择吗?

像往常一样,祈求MySQL大神将我从无知的db绝望中拯救出来。

非常感谢!

最佳答案

您需要使用

SELECT * FROM table WHERE id > desired_id ORDER BY date DESC LIMIT 20

其中 desired_id 是您在自动增量 ID 列中所需的任意值。

这意味着,该数据库将查找 id 高于 desired_id 的所有值,并按降序对它们进行排序,并且仅返回前 20 行。

关于mysql - SELECT LIMIT ORDER BY 从自动递增 id 中的任意列值开始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13101323/

相关文章:

sql - 3级嵌套排序

postgresql - PostgreSQL 如何在字段上执行带有 b 树索引的 ORDER BY?

sql - Order by 子句正在改变我的结果集

php - Mysql 获取所有行并回显为 json

MySQL 的绑定(bind)错误。错误 1452

mysql - 具有状态和类型数据库的关系数据库设计

函数外的php foreach

php - MongoDB PHP 限制不起作用

mysql - 使用 ORDER BY 和 LIMIT MYSQL 更新多个不同的表

MySQL只显示特定字段的第一行