雄辩的查询哪里和条件或哪里和不同的条件
Posted
技术标签:
【中文标题】雄辩的查询哪里和条件或哪里和不同的条件【英文标题】:Eloquent query where and condition OR where and different condition 【发布时间】:2019-05-07 13:12:40 【问题描述】:我需要创建一个查询来搜索 (first name = foo AND last name = bar) OR (first name = bar and last name = foo)。这真的令人沮丧,无法正常工作。我很感激任何建议。
$this->_records->where('first_name','LIKE', $params[0])->where('last_name', 'LIKE', $params[1])->orWhere('first_name','LIKE', $params[1])->where('last_name', 'LIKE', $params[0]);
【问题讨论】:
【参考方案1】:您可以像这样将它们组合在一起:
$this
->_records()
->where(function ($query) use ($params)
return $query->where('first_name', 'LIKE', $params[0])
->where('last_name', 'LIKE', $params[1]);
)
->orWhere(function ($query) use ($params)
return $query->where('first_name', 'LIKE', $params[1])
->where('last_name', 'LIKE', $params[0]);
)
->get();
【讨论】:
【参考方案2】:你可以试试这个查询,它允许搜索多个字段。
$this->_records
->whereRaw("concat(first_name, ' ', last_name) like '%".$params."%' ")
->orWhereRaw("concat(last_name, ' ', first_name) like '%".$params."%' ")
->get();
【讨论】:
以上是关于雄辩的查询哪里和条件或哪里和不同的条件的主要内容,如果未能解决你的问题,请参考以下文章