繁体   English   中英

如何从查询Laravel获得相反的结果

[英]how to get opposite results from a query Laravel

如何从SELECT查询中获得相反的结果

以下是我的查询

  $fod = FodMap::select('*')
        ->where('fructose_level', $fructose == 1 ? '=' : '>=', $fructose)
        ->where('lactose_level', $lactose == 1 ? '=' : '>=', $lactose)
        ->where('polyols_level', $polyols == 1 ? '=' : '>=', $polyols)
        ->where('fructan_level', $fructan == 1 ? '=' : '>=', $fructan)
        ->get();

我想获取不属于上述查询的所有内容。 请咨询

为了在Laravel中做出否定陈述,请使用whereNotIn表达式。

laravel.io

好的,我考虑了一段时间后,我认为解决方案并不像您首先提出的那样复杂(当我首先阅读它时,我认为您想要倒转的结果)。

  1. 在您的评论之一中,您写道:

上面的结果给出了用户不能吃的食物的列表..我希望它得到上面不匹配的结果

  1. 我已经读过有关果糖水平的信息。总而言之,高于1的水平是不好的,低于1的水平是好的。

因此,解决方案太简单了:

$fod = FodMap::select('*')
        ->where('fructose_level', '<', $fructose)
        ->where('lactose_level', '<', $lactose)
        ->where('polyols_level', '<', $polyols)
        ->where('fructan_level', '<', $fructan)
        ->get();

同样,原始查询中的三元运算符也没有意义,因为子句如下:

->where('fructose_level', $fructose == 1 ? '=' : '>=', $fructose)

将始终作为:

->where('fructose_level', '>=', $fructose)

想一想。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM