小编典典

MySQL从n最后一行选择

mysql

我有一个带有索引(自动递增)和整数值的表。该表长百万行。

如何搜索某个数字是否最有效地出现在表的最后n行中?


阅读 315

收藏
2020-05-17

共1个答案

小编典典

从@chaos给出的答案开始,但进行了一些修改:

  • ORDER BY如果使用,则应始终使用LIMIT。对于RDBMS表,没有保证的隐式顺序。 通常, 您可能 按主键的顺序获得行,但是您不能依靠它,也不是可移植的。

  • 如果按降序排列,则无需事先知道表中的行数。

  • 您必须为派生表指定一个 相关名称 (又名表别名)。

这是我的查询版本:

SELECT `id`
FROM (
    SELECT `id`, `val`
    FROM `big_table`
    ORDER BY `id` DESC
    LIMIT $n
) AS t
WHERE t.`val` = $certain_number;
2020-05-17