使用 mysql 从结果集中获取最后 4 行的最佳方法

Posted

技术标签:

【中文标题】使用 mysql 从结果集中获取最后 4 行的最佳方法【英文标题】:Best way to fetch last 4 rows from a result set using mysql 【发布时间】:2010-06-05 11:54:40 【问题描述】:

谁能告诉我,我需要使用 mysql 从结果集中获取最后 4 行。结果集共返回6条记录。

但是,我需要从 last4 获取记录...即,

Record-3
Record-4
Record-5
Record-6

【问题讨论】:

【参考方案1】:

要获取最后的 x 行数,但要按升序返回,请使用:

  SELECT x.value
    FROM (SELECT y.value
            FROM TABLE y
        ORDER BY y.value DESC
           LIMIT 4) x
ORDER BY x.value

答案要求您根据所需的行创建一个派生表(AKA 内联视图)。然后外部查询对值重新排序以进行表示。

【讨论】:

【参考方案2】:
SELECT * FROM tablename ORDER BY id DESC LIMIT 0,4 

将为您提供最后 4 条记录(“last”当您通过 id 订购表格时,这应该是这里的自动增量字段。)

【讨论】:

我需要记录集的结果应该按升序排列。怎么办? @php 实际上,那么我不知道不需要在单独的操作中首先计算行数的解决方案。然后它会例如当它有 660 行时是 SELECT * FROM table ORDER BY id LIMIT 656,4【参考方案3】:

如果你总是有 6 行,你可以使用限制。

SELECT * FROM Tabel LIMIT 2, 4

【讨论】:

以上是关于使用 mysql 从结果集中获取最后 4 行的最佳方法的主要内容,如果未能解决你的问题,请参考以下文章

PHP mysql_num_rows() 函数 返回结果集中行的数目。

SAS - 如何从数据集中获取最后的“n”个观察结果?

获取 SQLite 上最后插入行的 ID 的最佳方法

Postgres:在结果集中查找特定行的位置?

MYSQL 的查询结果集中怎样从最后一个倒过来取

使用mysql_fetch_row()函数逐行获取结果集中的每条记录