从Laravel 7.x中的DB::select获取单个值

从Laravel 7.x中的DB::select获取单个值,laravel,Laravel,我正在使用Laravel的DB::select运行一个查询以获得MAX()值。我只需要单行结果中的单列值。我使用什么方法从DB::select()语句中获取此信息 我发现这个答案同时提供了pluck()和value()。自5.3版以来,pluck()的行为发生了变化,因此这不是答案。但是,当我使用value()时,我没有得到预期的值。相反,我得到了一个关于数组的错误: $query = DB::select('SELECT max(sort) AS sort FROM man_pos WHER

我正在使用Laravel的
DB::select
运行一个查询以获得
MAX()
值。我只需要单行结果中的单列值。我使用什么方法从
DB::select()
语句中获取此信息

我发现这个答案同时提供了
pluck()
value()
。自5.3版以来,
pluck()
的行为发生了变化,因此这不是答案。但是,当我使用
value()
时,我没有得到预期的值。相反,我得到了一个关于数组的错误:

$query =  DB::select('SELECT max(sort) AS sort FROM man_pos WHERE manual_id = ?', [$manual_id]);
dd($query);

错误HTTP 500内部服务器错误

对数组上的成员函数value()的调用

当然,我可以遍历数组来提取值,但使用方法的全部目的是避免这种额外的繁琐操作


根据评论中的请求,以下是一些示例数据和预期结果。首先,查询:

MariaDB [dev]> SELECT MAX(sort) FROM man_pos WHERE manual_id = 1;
+-----------+
| MAX(sort) |
+-----------+
|         3 |
+-----------+
第二,我想得到的是:

$max_sort = DB::select('SELECT max(sort) AS sort FROM man_pos WHERE manual_id = ?', [$manual_id])->getSingleValue();

dd($max_sort);


您可以尝试使用Laravel的内置
MAX
功能:

$max_sort = DB::table('man_pos')
    ->where('manual_id', $manual_id)
    ->max('sort');

您希望单个最大值返回单个值的单个列

$max_sort = DB::table('man_pos')->select('sort')->where('manual_id', '=', $manual_id)->max('sort');

你能写出样本数据和预期的结果吗data@NurbekBoymurodov请看edits@user151841我刚刚测试了我错了,你不需要get()和first(),当你使用max()时,我编辑了答案你试过Tim Biegelesion吗答案应该是有效的
$max_sort = DB::table('man_pos')->select('sort')->where('manual_id', '=', $manual_id)->max('sort');