我有一个查询,其中所有参数都是可选的 我想在以下情况下选择行:“选择所有具有 marketplace_id 或 account_id 并具有标题的产品”。换一种说法
select * from produts where (marketplace_id in (...) or account_id in (...)) and title ilike "blah".
那是我能到的最远的地方。
$query = Product::query();
if($parametros_pesquisa['marketplaces'] !== null )
{
$query->whereIn('marketplace_id', $search_parameters['marketplaces']);
}if($parametros_pesquisa['contas'] !== null){
$query->orWhereIn('conta_id', $search_parameters['account']);
} if($search_parameters['titulo'] !== null){
$query->where("titulo", 'ilike', '%' . $search_parameters['titulo'] . '%');
}
在这里,$search_parameters['marketplaces']and$search_parameters['account']将是一个 id 数组,[1, 2, 3]。我检查用户是否指定了搜索条件并将其动态包含在查询中。似乎查询正在执行,就像查询中的括号不存在一样。我怎样才能达到我想要的?
qq_笑_17
qq_遁去的一_1