如何从 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();
我希望获得不属于上述查询的所有内容。请咨询
答案 0 :(得分:0)
在Laravel中使用whereNotIn
表达式进行否定陈述。
答案 1 :(得分:0)
好的,我想了一段时间你的问题,我认为解决方案并不像你先问的那样复杂(当我第一次看到它时,我以为你想要反转的结果)。
以上结果给出了用户不能吃的食物清单..我是什么 希望它得到上面不匹配的结果
所以,解决方案太简单了:
$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)
想一想。