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



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

41 41 45 48 50

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

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

当然,结果将为NULL。我应该怎么做才能得到下一个最高值,即45?

请帮忙。提前感谢!

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

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

这应该行得通。

和平!

您应该使用:

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

最新更新