Laravel:如何获得数据库中的下一个最高价值?

时间:2014-10-16 20:15:57

标签: database laravel

假设我的数据库中有这个分数列;

41 41 45 48 50

我有一个$ number变量,等于42.然后,我试着像这样查询。

$search = DB::table('scores')->where('score', $number)->orderByRaw('RAND()')->first(); 

当然,结果将为NULL。如何获得下一个最高值45?

请帮忙。提前谢谢!

3 个答案:

答案 0 :(得分:3)

你会如何在原始SQL中执行此操作?您希望下一个分数大于$number。因此,请使用->where('score','>',$number)然后->orderBy('score')(升序)限制结果,以便第一行包含大于$number的下一个分数,然后仅获取第一行。

答案 1 :(得分:0)

$search = DB::table('scores')->where('score','>', $number)->orderBy('score', 'asc')->take(1)->get(); 

这应该有效。

和平!

答案 2 :(得分:0)

您应该使用:

$search = DB::table('scores')->where('score', '>' $number)->orderBy('score', 'ASC')->first();