假设我的数据库中有这个分数列;
41 41 45 48 50
我有一个$ number变量,等于42.然后,我试着像这样查询。
$search = DB::table('scores')->where('score', $number)->orderByRaw('RAND()')->first();
当然,结果将为NULL。如何获得下一个最高值45?
请帮忙。提前谢谢!
答案 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();