gpt4 book ai didi

database - Laravel `orWhere()` 函数

转载 作者:搜寻专家 更新时间:2023-10-30 22:11:30 26 4
gpt4 key购买 nike

我正在构建一个查询,我希望获得以下信息:

SELECT * FROM table WHERE color = 'white' OR color = 'red'

此颜色是一个滤镜,它会根据客户的选择添加红色或白色滤镜,甚至添加更多颜色。

所以我测试了:

    if(isset($input['filter']['color'])) {
$query->where(function($where) use ($input) {
foreach($input['filter']['color'] as $color) {
$where->where('color', array($color));
}
});
}

但这会导致:

SELECT * FROM table WHERE (color = 'white' AND color = 'red')

谁能告诉我如何解决这个问题?我测试了一些东西,但没有得到我想要的结果。颜色只是在过滤器上,有更多的过滤选项。

因此,例如,过滤器查询可能如下所示:

SELECT * FROM table WHERE (color = 'white' OR color = 'red') AND (used = 'Y') AND (size = 1 OR size = 2) etc..

欧文

最佳答案

使用或Where过滤器:

if (isset($input['filter']['color'])) {
$query->where(function ($query) use ($input) {
foreach ($input['filter']['color'] as $color) {
$query->orWhere('color', $color);
}
});
}

或者只使用whereIn:

if (isset($input['filter']['color'])) {
$query->whereIn('color', $input['filter']['color']);
}

关于database - Laravel `orWhere()` 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26981045/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com