mysql中的下一个最低数字

mysql中的下一个最低数字,mysql,Mysql,如何查询希望下一个最低的数字高于某个数字 举个例子,如果我有id步骤号中的数据 1 3 4 5 6 如果我只想让下一个最高的数字高于1…但我不知道它们每次都在变化。我只知道我需要下一个最低的数字,高于一个数字。因此,在这种情况下,我希望返回3 select step_number from system_step_product where step_number > 1 order by step_number asc limit 1; 这是可行的,但有更好的方法吗?我认为没有更好的

如何查询希望下一个最低的数字高于某个数字

举个例子,如果我有id步骤号中的数据

1
3
4
5
6
如果我只想让下一个最高的数字高于1…但我不知道它们每次都在变化。我只知道我需要下一个最低的数字,高于一个数字。因此,在这种情况下,我希望返回3

select step_number from system_step_product where step_number > 1
order by step_number asc limit 1;

这是可行的,但有更好的方法吗?

我认为没有更好的方法;这是一种非常有效的方法

还有,你有理由寻找更好的方法吗?引用克努特的话

“过早优化是问题的根源 一切邪恶。”


您的解决方案可能是性能最好的,但另一个适用于其他DB的解决方案是:

SELECT MIN(step_number)
FROM system_step_product
WHERE step_number > 1
为该列编制索引可能也是一个好主意。

这也适用于:

SELECT MIN(step_number) 
FROM system_step_product 
WHERE step_number > 1

这不是一个好答案。使用偏移量1时,可以选择所有按升序排列的值并将数字限制为1。@tomasz:因为这样做并不意味着这是一种更好的方法。另外,请注意edit/quote.hehe,您比以前快了46秒:)