从@chaos给出的答案开始,但进行了一些修改:
ORDER BY
如果使用,则应始终使用LIMIT
。对于RDBMS表,没有保证的隐式顺序。 通常, 您可能 会 按主键的顺序获得行,但是您不能依靠它,也不是可移植的。如果按降序排列,则无需事先知道表中的行数。
您必须为派生表指定一个 相关名称 (又名表别名)。
这是我的查询版本:
SELECt `id`FROM ( SELECt `id`, `val` FROM `big_table` ORDER BY `id` DESC LIMIT $n) AS tWHERe t.`val` = $certain_number;



