Как получить противоположные результаты из запроса 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
Хорошо, я подумал о вашем вопросе в течение некоторого времени, и я думаю, что решение не так сложно, как вы просили сначала (когда я сначала прочитал его, я подумал, что вы хотите перевернутый результат).
выше результатов дает список продуктов, которые пользователь не может есть .. что я хочу, чтобы получить результаты, которые не соответствуют выше
Таким образом, решение слишком просто:
$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)
Думаю об этом.