Database 拉威尔:如何获得数据库中的下一个最高值?

Database 拉威尔:如何获得数据库中的下一个最高值?,database,laravel,Database,Laravel,假设我的数据库中有这个分数列 41454850 我有一个$number变量,它等于42。然后,我试着这样提问 $search = DB::table('scores')->where('score', $number)->orderByRaw('RAND()')->first(); 当然,结果将为空。我应该怎么做才能得到下一个最高值,即45 请帮忙。提前谢谢 您将如何在原始SQL中执行此操作?您希望下一个分数大于$number。因此,使用->where('score','>

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

41454850

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

$search = DB::table('scores')->where('score', $number)->orderByRaw('RAND()')->first(); 
当然,结果将为空。我应该怎么做才能得到下一个最高值,即45


请帮忙。提前谢谢

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

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

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

在原始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();

为此,您应使用:

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

为此,您应使用:

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

为此,您应使用:

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

为什么是45岁?最高的是50?请解释你想要什么achieve@MarcinNabia在他的排行榜上,排在42之后的第二高的数字是45。为什么是45?最高的是50?请解释你想要什么achieve@MarcinNabia在他的排行榜上,排在42之后的第二高的数字是45。为什么是45?最高的是50?请解释你想要什么achieve@MarcinNabia在他的排行榜上,排在42之后的第二高的数字是45。为什么是45?最高的是50?请解释你想要什么achieve@MarcinNabiałek在他的列表中仅次于42的第二高数字是45。我尝试了这个解决方案,但我得到了一个奇怪的结果。如果我的分数是3分,结果是30分。如果分数为2,结果将为20,而不是最近的最高分数5。顺便说一句,我的数据几乎是由400分组成的$secondsearch=DB::table('score')->where('score','>=',$score)->orderBy('score','ASC')->take(1)->first();我尝试了这个解决方案,但我得到了一个奇怪的结果。如果我的分数是3分,结果是30分。如果分数为2,结果将为20,而不是最近的最高分数5。顺便说一句,我的数据几乎是由400分组成的$secondsearch=DB::table('score')->where('score','>=',$score)->orderBy('score','ASC')->take(1)->first();我尝试了这个解决方案,但我得到了一个奇怪的结果。如果我的分数是3分,结果是30分。如果分数为2,结果将为20,而不是最近的最高分数5。顺便说一句,我的数据几乎是由400分组成的$secondsearch=DB::table('score')->where('score','>=',$score)->orderBy('score','ASC')->take(1)->first();我尝试了这个解决方案,但我得到了一个奇怪的结果。如果我的分数是3分,结果是30分。如果分数为2,结果将为20,而不是最近的最高分数5。顺便说一句,我的数据几乎是由400分组成的$secondsearch=DB::table('score')->where('score','>=',$score)->orderBy('score','ASC')->take(1)->first();