如何进行查询,我希望下一个最低数字高于某个数字
所以例如,如果我有像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;
这有效但有更好的方法
答案 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