CodeIgniter에서 WHERE 절 그룹화
CodeIgniter는 Active Record를 사용하여 SQL 쿼리를 구성하는 편리한 방법을 제공합니다. 복잡한 쿼리의 경우 명확성과 정확성을 위해 WHERE 절을 그룹화해야 하는 경우가 있습니다.
문제:
다음 SQL 코드를 고려하세요.
WHERE name != 'Joe' AND (age < 69 OR id > 50)
이것을 CodeIgniter의 Active Record 구문으로 직접 번역하면, get:
$this->db->select() ->from('users') ->where('name !=', 'Joe') ->where('age <', 69) ->or_where('id <', $id);
그러나 이 쿼리는 괄호가 있는 하위 절을 올바르게 그룹화하지 않습니다.
해결책:
괄호를 사용하여 WHERE 절을 그룹화하려면 CodeIgniter에서는 다음과 같이 group_start() 및 group_end() 메서드를 사용합니다. 다음:
$this->db->select() ->from('users') ->where('name !=', 'Joe') ->group_start() // Open parentheses ->where('age <', 69) ->or_where('id <', $id) ->group_end(); // Close parentheses
이 쿼리는 하위 절을 괄호로 묶어 원하는 SQL 코드를 생성합니다.
복잡한 쿼리에 대한 고려 사항:
In CodeIgniter 3에서는 group_start() 및 group_end() 메소드를 데이터베이스 빌더에서 사용할 수 있습니다. $this->db를 통해 액세스됩니다. CodeIgniter 4에서는 $builder와 같은 변수에 할당되는 쿼리 빌더에서 사용할 수 있습니다.
복잡한 쿼리에서 여러 OR 절을 사용하는 경우 groupStart() 및 groupEnd() 메서드 사용을 고려하세요. 운영자가 올바른 순서로 평가하도록 합니다. 이렇게 하면 쿼리가 의도한 결과를 생성할 수 있습니다.
위 내용은 CodeIgniter에서 WHERE 절을 그룹화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!