假设我的数据库中有这个分数列;
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();