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;