【发布时间】:2020-01-15 16:05:38
【问题描述】:
我有一个查询,其中所有参数都是可选的 我想在以下情况下选择行:“选择所有具有市场 ID 或帐户 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'] 和 $search_parameters['account'] 将是一个 id 数组 [1, 2, 3]。我检查用户是否指定了搜索条件并将其动态包含在查询中。似乎查询正在执行,就像查询中的括号不存在一样。我怎样才能达到我想要的?
【问题讨论】:
标签: php postgresql eloquent