mysql中的下一个最小数字

时间:2011-06-08 19:18:03

标签: mysql

如何进行查询,我希望下一个最低数字高于某个数字

所以例如,如果我有像id step_number

那样的数据
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;

这有效但有更好的方法

3 个答案:

答案 0 :(得分:3)

您的解决方案可能是最高效的解决方案,但在其他数据库中可以使用的另一种解决方案是:

SELECT MIN(step_number)
FROM system_step_product
WHERE step_number > 1

索引该列也可能是一个好主意。

答案 1 :(得分:2)

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

另外,你有理由寻找更好的方法吗?引用Knuth,

  

“过早优化是其根源   所有的邪恶。“

答案 2 :(得分:2)

这也有效:

SELECT MIN(step_number) 
FROM system_step_product 
WHERE step_number > 1