>  기사  >  데이터 베이스  >  CodeIgniter에서 WHERE 절을 그룹화하는 방법은 무엇입니까?

CodeIgniter에서 WHERE 절을 그룹화하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-13 02:09:02624검색

How to Group WHERE Clauses in CodeIgniter?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.