ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [CodeIgniter] 데이터베이스(Database) 쿼리 빌더 - LIKE
    프로그래밍/CodeIgniter 2018. 10. 26. 11:16

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



    ▶설명


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

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


    자주 사용하지 않는 항목은 생략하겠습니다.

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


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


    ▶비슷한 데이터 조회 (LIKE)


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


    $this->db->like()

    이 함수는 LIKE 절을 생성합니다.

    사용 방법은 총 3가지가 있습니다.


    첫 번째 : 단순 키/값

    $this->db
        ->select('name, price')
        ->from('products')
        ->like('name', '볼펜');
    // 실행 결과 : SELECT `name`, `price` FROM `products` WHERE `name` LIKE '%볼펜%' ESCAPE '!'


    이 함수를 여러 번 사용하면 각가을 AND로 연결해줍니다.

    $this->db
        ->select('name, price')
        ->from('products')
        ->like('name', '볼펜')
        ->like('group', '문구');
    // 실행 결과 : SELECT `name`, `price` FROM `products` WHERE `name` LIKE '%볼펜%' ESCAPE '!' AND `group` LIKE '%문구%' ESCAPE '!'


    두 번째 : 연관배열

    $array = array(
        'name' => '볼펜',
        'group' => '문구',
    );
    
    $this->db
        ->select('name, price')
        ->from('products')
        ->like($array);
    // 실행 결과 : SELECT `name`, `price` FROM `products` WHERE `name` LIKE '%볼펜%' ESCAPE '!' AND `group` LIKE '%문구%' ESCAPE '!'


    세 번째 : 와일드카드(%) 변경

    - before

    $this->db
        ->select('name, price')
        ->from('products')
        ->like('name', '볼펜', 'before');
    // 실행 결과 : SELECT `name`, `price` FROM `products` WHERE `name` LIKE '%볼펜' ESCAPE '!'


    - after

    $this->db
        ->select('name, price')
        ->from('products')
        ->like('name', '볼펜', 'after');
    // 실행 결과 : SELECT `name`, `price` FROM `products` WHERE `name` LIKE '볼펜%' ESCAPE '!'


    - both (기본값)

    $this->db
        ->select('name, price')
        ->from('products')
        ->like('name', '볼펜', 'both');
    // 실행 결과 : SELECT `name`, `price` FROM `products` WHERE `name` LIKE '%볼펜%' ESCAPE '!'


    $this->db->or_like()

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

    $this->db
        ->select('name, price')
        ->from('products')
        ->like('name', '볼펜')
        ->or_like('group', '문구');
    // 실행 결과 : SELECT `name`, `price` FROM `products` WHERE `name` LIKE '%볼펜%' ESCAPE '!' OR `group` LIKE '%문구%' ESCAPE '!'


    $this->db->not_like()

    NOT LIKE문을 생성하는 점을 제외하면 $this->db->like() 함수와 동일합니다.

    $this->db
        ->select('name, price')
        ->from('products')
        ->not_like('name', '볼펜');
    // 실행 결과 : SELECT `name`, `price` FROM `products` WHERE `name` NOT LIKE '%볼펜%' ESCAPE '!'


    $this->db->or_not_like()

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

    $this->db
        ->select('name, price')
        ->from('products')
        ->like('name', '볼펜')
        ->or_not_like('group', '문구');
    // 실행 결과 : SELECT `name`, `price` FROM `products` WHERE `name` LIKE '%볼펜%' ESCAPE '!' OR `group` NOT LIKE '%문구%' ESCAPE '!'


    ▶마치며


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

    쿼리 빌더에 대한 내용이 많기 때문에 다음 글에 추가로 작성하겠습니다.


    댓글

Designed by Tistory.