laravel - 如何使用查询生成器根据 Laravel 中两列的总和获取数据?

标签 laravel

例如,我有一张 table ,

id   apple   orange
 1       1        1
 2       1        2
 3       2        2

我想获取 $apple + $orange > $threshold 的项目。例如,如果 $threshold = 3,则答案将为 No.3。如何在 Laravel 查询生成器中执行此操作?

我尝试了这个问题的filter():How to add two columns value and perform where condition in laravel eloquent

$set = collect($set)->filter(function ($val) use ($threshold) {
    return $val->apple + $val->orange > $threshold;
})->values()->all();

它确实有效,但对我来说看起来真的很难看......还有其他方法可以解决这个问题吗?

最佳答案

我将您的要求解释为相当于以下查询:

SELECT *
FROM fruits
WHERE apple + orange > $threshold

如果是这样,那么您可以尝试在以下条件下使用 whereRaw:

DB::table('fruits')
    ->whereRaw("apple + orange > ?", array($threshold));
    ->get();

关于laravel - 如何使用查询生成器根据 Laravel 中两列的总和获取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46416597/

相关文章:

php - 使用 digitalocean 伪造 mysqldump 命令访问被拒绝

laravel - 使用 vue js 和 laravel 添加表数据时获取未定义的值

laravel - 如何在 Laravel 5.8 Eloquent 模型中禁用软删除

php - 对非 PHP 文件使用 Laravel @include 指令?

php - Laravel Carbon 错误,日期相差年份

Laravel 5.1 不处理排队作业

php - Laravel 迁移未知数据库枚举请求

php - 使用 Orchestra Testbench 测试独立 Laravel 包时出现错误 : Class 'Route' not found in routes. php

PHP - 为什么读取这个 csv 文件使用这么多内存,我该如何改进我的代码?

php - 如何获取 Storage::put 返回 false 的原因?