집 >데이터 베이스 >MySQL 튜토리얼 >복잡한 조건에 대해 CodeIgniter에서 WHERE 절을 어떻게 그룹화합니까?
Codeigniter에서 WHERE 절 그룹화
복잡한 조건에서 여러 WHERE 절을 그룹화하려면 group_start() 및 group_end()를 사용할 수 있습니다. Codeigniter의 메소드 이러한 방법을 사용하면 중첩된 WHERE 조건을 생성할 수 있습니다.
Codeigniter 3:
$this->db->select() ->from('users') ->where('name !=', 'Joe') ->group_start() // Open bracket ->where('age <', 69) ->or_where('id <', $id) ->group_end(); // Close bracket
Codeigniter 4:
$builder->select('*') ->from('users') ->where('name !=', 'Joe') ->groupStart() ->where('age <', 69) ->orWhere('id <', $id) ->groupEnd();
이 수정된 코드는 group_start() 및 group_end()를 사용하여 age 및 id 조건을 괄호로 묶습니다. 이렇게 하면 AND 조건(age < 69)이 먼저 평가되고 OR 조건(id < $id)이 뒤따릅니다.
동적 쿼리 처리:
귀하의 원래 검색어는 사용자 매개변수를 기반으로 동적으로 생성되었습니다. 이러한 시나리오에서 그룹화 방법을 사용하려면 원하는 WHERE 조건을 루프 내에 넣고 group_start() 및 group_end()를 적절하게 사용하면 됩니다.
if ($price_range) { $price_array = explode('.', $price_range); $this->db->where('name !=', 'Joe'); for ($i = 0; $i < count($price_array); $i++) { if ($i === 0) { $this->db->group_start(); $this->db->where('places.price_range', $price_array[$i]); } else { $this->db->or_where('places.price_range', $price_array[$i]); } } $this->db->group_end(); }이 수정된 코드는 group_start() 및 group_end()를 사용합니다. 가격 범위 조건을 그룹화하여 적절한 연산자 우선순위를 보장하고 평가 문제를 방지합니다.
위 내용은 복잡한 조건에 대해 CodeIgniter에서 WHERE 절을 어떻게 그룹화합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!