라벨 where In 또는 위치인
필터로 제품을 검색하는 중입니다.
내 코드:
->where(function($query) use($filter)
{
if(!empty($filter)){
foreach ($filter as $key => $value) {
$f = explode(",", $value);
$query-> whereIn('products.value', $f);
}
}
})
쿼리:
and (products.value in (Bomann, PHILIPS) and products.value in (red,white))
하지만 필요한 건:
and (products.value in (Bomann, PHILIPS) OR products.value in (red,white))
라라벨에도 비슷한 것이 있습니까?
orWhereIn
당신은 단지 검색할 수 있었습니다.whereIn
그것을 보기 위해 코어에서 기능합니다.여기 있습니다.이것은 당신의 모든 질문에 답해야 합니다.
/**
* Add a "where in" clause to the query.
*
* @param string $column
* @param mixed $values
* @param string $boolean
* @param bool $not
* @return \Illuminate\Database\Query\Builder|static
*/
public function whereIn($column, $values, $boolean = 'and', $not = false)
{
$type = $not ? 'NotIn' : 'In';
// If the value of the where in clause is actually a Closure, we will assume that
// the developer is using a full sub-select for this "in" statement, and will
// execute those Closures, then we can re-construct the entire sub-selects.
if ($values instanceof Closure)
{
return $this->whereInSub($column, $values, $boolean, $not);
}
$this->wheres[] = compact('type', 'column', 'values', 'boolean');
$this->bindings = array_merge($this->bindings, $values);
return $this;
}
세 번째 부울 매개 변수가 있는지 확인합니다.행운을 빌어요.
당신은 있습니다.orWhereIn
함수는 Laravel입니다.다음과 같은 매개 변수가 필요합니다.whereIn
기능.
설명서에는 없지만 Laravel API에서 찾을 수 있습니다.Laravel 8 또는 WhereIn 설명서를 참조하십시오.
그러면 다음과 같은 이점이 있습니다.
$query-> orWhereIn('products.value', $f);
$query = DB::table('dms_stakeholder_permissions');
$query->select(DB::raw('group_concat(dms_stakeholder_permissions.fid) as fid'),'dms_stakeholder_permissions.rights');
$query->where('dms_stakeholder_permissions.stakeholder_id','4');
$query->orWhere(function($subquery) use ($stakeholderId){
$subquery->where('dms_stakeholder_permissions.stakeholder_id',$stakeholderId);
$subquery->whereIn('dms_stakeholder_permissions.rights',array('1','2','3'));
});
$result = $query->get();
return $result;
OUTPUT @input $stakeholderId = 1
//fid로 group_concat(dms_sysholder_commissions.dll)을 선택합니다.dms_stakeholder_permissionss
.rights
부터dms_stakeholder_permissions
어디에dms_stakeholder_permissions
.stakeholder_id
4 또는 (dms_stakeholder_permissions
.stakeholder_id
1 그리고dms_stakeholder_permissions
.rights
(1, 2, 3)에
네.orWhereIn
사용할 수 있는 방법입니다.
저는 그것이 당신이 찾고 있는 결과를 줄 것이라고 꽤 확신하지만, 그렇지 않다면 당신은 단순히 사용할 수 있습니다.implode
문자열을 생성한 다음 폭발시키는 방법(이것은 배열 구조를 추측한 것입니다):
$values = implode(',', array_map(function($value)
{
return trim($value, ',');
}, $filters));
$query->whereIn('products.value', explode(',' $values));
네.orWhereIn
여기서 절 메서드는 Laravel에 존재합니다.자세한 내용은 아래의 공식 Laravel Query Builder 문서 링크를 참조하십시오.
설명서 링크: https://laravel.com/docs/8.x/queries#additional-where-clauses
아래의 출력을 얻는 방법은 두 가지가 있습니다.
and (products.value in (Bomann, PHILIPS) OR products.value in (red,white))
- 사용.
orWhereIn
$query = Product::where('color', 'blue')
->whereIn('value', ['Bomann', 'PHILIPS'])
->orWhereIn('value', ['red', 'white'])
->get();
출력:
select * from `products` where `color` = 'blue' and `value` in (Bomann, PHILIPS) OR `value` in (red,white))
- 사용.
orWhere
그리고.whereIn
$query2 = Product::where('color', 'blue')
->whereIn('value', ['Bomann', 'PHILIPS'])
->orWhere(function ($query) {
$query->whereIn('value', ['Bomann', 'PHILIPS']);
})
->get();
출력:
select * from `products` where `color` = 'blue' and `value` in (Bomann, PHILIPS) OR (`value` in (red,white))
예를 들어 whereIn OR whereIn 조건이 여러 개 있고 대괄호를 넣으려면 다음과 같이 수행합니다.
$getrecord = DiamondMaster::where('is_delete','0')->where('user_id',Auth::user()->id);
if(!empty($request->stone_id))
{
$postdata = $request->stone_id;
$certi_id =trim($postdata,",");
$getrecord = $getrecord->whereIn('id',explode(",", $certi_id))
->orWhereIn('Certi_NO',explode(",", $certi_id));
}
$getrecord = $getrecord->get();
언급URL : https://stackoverflow.com/questions/22758819/laravel-wherein-or-wherein
'programing' 카테고리의 다른 글
Microsoft 사용 방법jQuery.방해가 되지 않는.아약스 with libman (라이브러리 매니저) asp.net 코어 2.1? (0) | 2023.08.29 |
---|---|
MySQL에서 NULL을 기준으로 주문 (0) | 2023.08.29 |
django 템플릿 항목 표시 값 또는 빈 문자열 (0) | 2023.08.29 |
도커/오버레이 2/를 청소해도 안전합니까? (0) | 2023.08.29 |
부트스트랩 모달 문제 - 스크롤 사용 안 함 (0) | 2023.08.29 |