ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [CodeIgniter] 데이터베이스(Database) 쿼리 빌더 - WHERE
    프로그래밍/CodeIgniter 2018. 10. 25. 13:31

    ▶CodeIgniter 데이터베이스(Database) 쿼리 빌더 - WHERE



    ▶설명


    코드이그나이터(CodeIgniter) 쿼리 빌더 2번째 정리입니다.

    이번에는 특정 데이터를 조회할 때 사용하는 WHERE 절을 생성하는 쿼리 빌더 함수에 대해 알아보도록 하겠습니다.


    내용이 많은 관계로 자주 사용하지 않는 항목은 생략하겠습니다.

    쿼리 빌더 클래스에 대한 자세한 내용은 아래의 매뉴얼을 참조하시기 바랍니다.


    예제 코드는 제가 자주 사용하는 방식으로 작성했습니다.


    ▶특정 데이터 조회 (WHERE)


    아래의 함수들은 WHERE 절을 생성합니다.


    $this->db->where()

    이 함수는 4가지의 방법으로 WHERE 절을 생성할 수 있습니다.


    첫 번째 : 단순 키/값

    $this->db
        ->select('name, price')
        ->from('products')
        ->where('name', '볼펜');
    // 실행 결과 : SELECT `name`, `price` FROM `products` WHERE `name` = '볼펜'


    같다(=) 부분을 자동으로 생성합니다.

    여러 번 사용하면 모두 AND로 연결됩니다.

    $this->db
        ->select('name, price')
        ->from('products')
        ->where('name', '볼펜')
        ->where('price', '3000');
    // 실행 결과 : SELECT `name`, `price` FROM `products` WHERE `name` = '볼펜' AND `price` = '3000'


    두 번째 : 사용자 키/값

    $this->db
        ->select('name, price')
        ->from('products')
        ->where('name !=', '볼펜')
        ->where('price <', '3000');
    // 실행 결과 : SELECT `name`, `price` FROM `products` WHERE `name` != '볼펜' AND `price` < '3000'


    세 번째 : 연관배열

    $array = array(
        'name' => '볼펜',
        'price' => '3000'
    );
    $this->db
        ->select('name, price')
        ->from('products')
        ->where($array);
    // 실행 결과 : SELECT `name`, `price` FROM `products` WHERE `name` = '볼펜' AND `price` = '3000'


    직접 연산기호를 사용하는 방법도 있습니다.

    $array = array(
        'name !=' => '볼펜',
        'price <' => '3000'
    );
    $this->db
        ->select('name, price')
        ->from('products')
        ->where($array);
    // 실행 결과 : SELECT `name`, `price` FROM `products` WHERE `name` != '볼펜' AND `price` < '3000'


    네 번째 : 사용자 문자열

    $this->db
        ->select('name, price')
        ->from('products')
        ->where("name = '볼펜' AND price = 3000");
    // 실행 결과 : SELECT `name`, `price` FROM `products` WHERE `name` = '볼펜' AND `price` = 3000


    $this->db->or_where()

    여러 조건들이 OR로 연결되는 것을 제외하면 $this->db->where() 함수와 동일합니다.

    $this->db
        ->select('name, price')
        ->from('products')
        ->where('name !=', '볼펜')
        ->or_where('price <', '3000');>
    // 실행 결과 : SELECT `name`, `price` FROM `products` WHERE `name` != '볼펜' OR `price` < '3000'


    $this->db->where_in()

    WHERE 절의 IN ('item1', 'item2') 부분을 생성하면 필요한 경우 AND로 연결해줍니다.

    $array = array('볼펜', '샤프', '연필');
    $this->db
        ->select('name, price')
        ->from('products')
        ->where_in('name', $array);
    // 실행 결과 : SELECT `name`, `price` FROM `products` WHERE `name` IN('볼펜', '샤프', '연필')

    $this->db->or_where_in()은 매뉴얼을 참조하시기 바랍니다.


    $this->db->where_not_in()

    WHERE 절의 NOT IN ('item1', 'item2') 부분을 생성하면 필요한 경우 AND로 연결해줍니다.

    $array = array('볼펜', '샤프', '연필');
    $this->db
        ->select('name, price')
        ->from('products')
        ->where_not_in('name', $array);
    // 실행 결과 : SELECT `name`, `price` FROM `products` WHERE `name` NOT IN('볼펜', '샤프', '연필')

    $this->db->or_where_not_in()은 매뉴얼을 참조하시기 바랍니다.


    ▶마치며


    특정 데이터를 조회하는데 사용하는 WHERE 절을 생성할 수 있는 쿼리 빌더를 정리했습니다.

    내용이 많기 때문에 다음 글에 추가로 작성하겠습니다.



    댓글

Designed by Tistory.