You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel查询需求:优先取status=1的meter字段,无则取最后一条status=0的

Laravel 查询语句实现需求

需求:优先选取status=1的meter字段;若不存在status=1的数据,则选取最后一条status=0的meter字段。

方法一:利用排序优先级一次性查询

通过排序让status=1的数据优先,再按ID倒序取最新条目,直接获取目标字段:

$meter = DB::table('your_table_name')
    ->select('meter')
    ->orderBy('status', 'desc')
    ->orderBy('id', 'desc')
    ->value('meter');

逻辑说明:orderBy('status', 'desc')会将status=1的条目排在最前面,若存在多条status=1的数据,orderBy('id', 'desc')会取最新的那条;如果没有status=1的数据,自动匹配status=0里的最新条目。

方法二:分步查询(更直观)

先尝试获取status=1的数据,若不存在再查询status=0的最新条目:

// 优先查status=1的meter
$meter = DB::table('your_table_name')
    ->where('status', 1)
    ->value('meter');

// 若没查到,再查status=0的最后一条
if (!$meter) {
    $meter = DB::table('your_table_name')
        ->where('status', 0)
        ->orderBy('id', 'desc')
        ->value('meter');
}

内容的提问来源于stack exchange,提问作者onur

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 03:10:25