使用laravel在列中查找最接近的匹配项

时间:2017-07-26 06:14:01

标签: php laravel

我想知道如何找到与表中某个数字匹配的最接近的值。 我现在拥有的是:

$result = DB::table('numbers')
            ->orderBy('s/me - $input', 'desc')
            ->get();

s / me 是我想要找到匹配项的列名。但它一直给我Interface 'Throwable' not found错误。

2 个答案:

答案 0 :(得分:1)

你可以这样做:

$result = DB::table('numbers')
            ->select('*', DB::raw("ABS(s/me - $input) AS distance"))  
            ->orderBy('distance')
            ->get();

来源here的信用。

答案 1 :(得分:0)

您无法直接在orderBy,

中进行操作

试试这个:

$result = DB::table('numbers')
    ->select('*', DB::raw("(s/me - $input) AS column_to_be_order"))
    ->orderBy('column_to_be_order', 'desc')
    ->get();