$builder->get()

`get()` 함수를 사용하면 SQL SELECT 문을 작성할 수 있습니다.
select 쿼리를 실행하고 결과를 반환하며, 테이블에서 모든 레코드를 검색할 수 있습니다.

$builder->get()->getResult();

Array
(
    [0] => stdClass Object
        (
            [idx] => 1
            [name] => test1
            [title] => title-test1
            [email] => test1@test.com
        )

    [1] => stdClass Object
        (
            [idx] => 2
            [name] => test2
            [title] => title-test2
            [email] => test2@test.com
        )

    [2] => stdClass Object
        (
            [idx] => 3
            [name] => test3
            [title] => title-test3
            [email] => test3@test.com
        )

)


* Query : SELECT * FROM `my_table`

`limit`과 `offset`을 설정할 수 있습니다.

$builder->get(1)->getResult(), true);

Array
(
    [0] => stdClass Object
        (
            [idx] => 1
            [name] => test1
            [title] => title-test1
            [email] => test1@test.com
        )

)


* Query : SELECT * FROM `my_table`  LIMIT 1
$builder->get(1, 2)->getResult();

Array
(
    [0] => stdClass Object
        (
            [idx] => 3
            [name] => test3
            [title] => title-test3
            [email] => test3@test.com
        )

)

* Query : SELECT * FROM `my_table`  LIMIT 2, 1

`getResult()` 함수는 $query 라는 변수에 할당되어 있으며 결과를 표시하는데 사용합니다.
결과 생성에 대한 자세한 내용은 결과(result) 함수 페이지를 참조하십시오.

$builder->getCompiledSelect()

이 메소드는 SQL 쿼리를 문자열로 반환합니다.

$builder->getCompiledSelect();

SELECT *
FROM `my_table`

첫 번째 매개 변수를 사용하면 쿼리 빌더의 쿼리를 재설정할지 여부를 설정할 수 있습니다.

$builder->limit($limit, $offset)->getCompiledSelect(false);

SELECT *
FROM `my_table`
 LIMIT 2, 1

다음 예에서 `limit()`을 지정하지 않아도 사용 가능한 이유는 $builder->get()을 사용하여 쿼리가 실행되지 않았기 때문입니다.
쿼리를 재설정해야 한다면 `$builder->resetQuery()`를 사용하십시오.

$builder->select('title, content, date')->getCompiledSelect();

SELECT `title`, `content`, `date`
FROM `my_table`
 LIMIT 2, 1

$builder->getWhere()

`where()` 함수를 사용하는 대신 첫 번째 매개 변수에 “where”절을 추가 할 수 있다는 점을 제외하고 `get()` 함수와 동일합니다.

$builder->getWhere(['idx' => 1])->getResult();

Array
(
    [0] => stdClass Object
        (
            [idx] => 1
            [name] => test1
            [title] => title-test1
            [email] => test1@test.com
        )

)


* Query : SELECT * FROM `my_table` WHERE `idx` = 1

$builder->select()

쿼리의 SELECT 부분을 쓸 수 있습니다

$builder->select('idx, title')->get()->getResult();

Array
(
    [0] => stdClass Object
        (
            [idx] => 1
            [title] => title-test1
        )

    [1] => stdClass Object
        (
            [idx] => 2
            [title] => title-test2
        )

    [2] => stdClass Object
        (
            [idx] => 3
            [title] => title-test3
        )

)


* Query : SELECT `idx`, `title` FROM `my_table`

`$builder->select()`는 두 번째 매개 변수를 옵션으로 허용하며, 이를 `false`로 설정하면 CodeIgniter는 필드 또는 테이블 이름을 보호하지 않습니다.

필드의 자동 이스케이프가 필드를 손상시킬 수 있는 복합 선택문이 필요한 경우에 유용합니다.

$builder->select('idx, title, (SELECT SUM(idx) FROM my_table) AS idx_sum', false)->get()->getResult();

Array
(
    [0] => stdClass Object
        (
            [idx] => 1
            [title] => title-test1
            [idx_sum] => 6
        )

    [1] => stdClass Object
        (
            [idx] => 2
            [title] => title-test2
            [idx_sum] => 6
        )

    [2] => stdClass Object
        (
            [idx] => 3
            [title] => title-test3
            [idx_sum] => 6
        )

)


* Query : SELECT idx, title, (SELECT SUM(idx) FROM my_table) AS idx_sum FROM `my_table`

$builder->selectMax()

쿼리의 SELECT MAX(field) 부분을 작성합니다. 옵션으로 두 번째 매개 변수에 결과 필드의 이름을 전달하여 바꿀 수 있습니다.

$builder->selectMax('idx')->get()->getRow();

stdClass Object
(
    [idx] => 3
)


* Query : SELECT MAX(`idx`) AS `idx` FROM `my_table`
$builder->selectMax('idx', 'max_idx')->get()->getRow();

stdClass Object
(
    [max_idx] => 3
)


* Query : SELECT MAX(`idx`) AS `max_idx` FROM `my_table`

$builder->selectMin()

쿼리의 “SELECT MIN(field)” 부분을 작성합니다. selectMax()와 마찬가지로 결과 필드의 이름을 바꾸는 두 번째 매개 변수를 옵션으로 제공합니다.

$builder->selectMin('idx')->get()->getRow();

stdClass Object
(
    [idx] => 1
)


* Query : SELECT MIN(`idx`) AS `idx` FROM `my_table`
$builder->selectMin('idx', 'min_idx')->get()->getRow();

stdClass Object
(
    [min_idx] => 1
)


* Query : SELECT MIN(`idx`) AS `min_idx` FROM `my_table`

$builder->selectAvg()

쿼리의 “SELECT AVG(field)” 부분을 작성합니다. selectMax()와 마찬가지로 결과 필드의 이름을 바꾸는 두 번째 매개 변수를 옵션으로 제공합니다.

$builder->selectAvg('idx')->get()->getRow();

stdClass Object
(
    [idx] => 2.0000
)


* Query : SELECT AVG(`idx`) AS `idx` FROM `my_table`
$builder->selectAvg('idx', 'avg_idx')->get()->getRow();

stdClass Object
(
    [avg_idx] => 2.0000
)


* Query : SELECT AVG(`idx`) AS `avg_idx` FROM `my_table`

$builder->selectSum()

쿼리의 “SELECT SUM(field)” 부분을 작성합니다. selectMax()와 마찬가지로 결과 필드의 이름을 바꾸는 두 번째 매개 변수를 옵션으로 제공합니다.

$builder->selectSum('idx')->get()->getRow();

stdClass Object
(
    [idx] => 6
)


* Query : SELECT SUM(`idx`) AS `idx` FROM `my_table`
$builder->selectSum('idx', 'sum_idx')->get()->getRow();

stdClass Object
(
    [sum_idx] => 6
)


* Query : SELECT SUM(`idx`) AS `sum_idx` FROM `my_table`

$builder->selectCount()

쿼리의 “SELECT COUNT(field)” 부분을 작성합니다. selectMax()와 마찬가지로 결과 필드의 이름을 바꾸는 두 번째 매개 변수를 옵션으로 제공합니다.

$builder->selectCount('idx')->get()->getRow();

stdClass Object
(
    [idx] => 3
)


* Query : SELECT COUNT(`idx`) AS `idx` FROM `my_table`
$builder->selectCount('idx', 'cnt_idx')->get()->getRow();

stdClass Object
(
    [cnt_idx] => 3
)


* Query : SELECT COUNT(`idx`) AS `cnt_idx` FROM `my_table`

$builder->from()

쿼리의 FROM 부분을 작성합니다.

$builder->from('news')->get(4)->getResult();

Array
(
    [0] => stdClass Object
        (
            [idx] => 1
            [name] => test1
            [title] => Elvis sighted
            [email] => test1@test.com
            [id] => 1
            [slug] => elvis-sighted
            [body] => Elvis was sighted at the Podunk internet cafe. It looked like he was writing a CodeIgniter app.
        )

    [1] => stdClass Object
        (
            [idx] => 2
            [name] => test2
            [title] => Elvis sighted
            [email] => test2@test.com
            [id] => 1
            [slug] => elvis-sighted
            [body] => Elvis was sighted at the Podunk internet cafe. It looked like he was writing a CodeIgniter app.
        )

    [2] => stdClass Object
        (
            [idx] => 3
            [name] => test3
            [title] => Elvis sighted
            [email] => test3@test.com
            [id] => 1
            [slug] => elvis-sighted
            [body] => Elvis was sighted at the Podunk internet cafe. It looked like he was writing a CodeIgniter app.
        )

    [3] => stdClass Object
        (
            [idx] => 1
            [name] => test1
            [title] => Say it isnt so!
            [email] => test1@test.com
            [id] => 2
            [slug] => say-it-isnt-so
            [body] => Scientists conclude that some programmers have a sense of humor.
        )

)


* Query : SELECT * FROM `my_table`, `news`  LIMIT 4

앞서 설명한 것처럼 쿼리의 FROM 부분은 $db->table() 함수에서 지정할 수 있습니다. 추가 호출된 `from()`은 쿼리의 FROM 부분에 더 많은 테이블을 추가합니다.

$builder->join()

쿼리의 JOIN 부분을 작성합니다. 다음 예는 `my_table`과 `news`를 조인하여 데이터를 조회합니다.

$builder->join('news', 'my_table.idx = news.id')->get()->getResult();

Array
(
    [0] => stdClass Object
        (
            [idx] => 1
            [name] => test1
            [title] => Elvis sighted
            [email] => test1@test.com
            [id] => 1
            [slug] => elvis-sighted
            [body] => Elvis was sighted at the Podunk internet cafe. It looked like he was writing a CodeIgniter app.
        )

    [1] => stdClass Object
        (
            [idx] => 2
            [name] => test2
            [title] => Say it isnt so!
            [email] => test2@test.com
            [id] => 2
            [slug] => say-it-isnt-so
            [body] => Scientists conclude that some programmers have a sense of humor.
        )

    [2] => stdClass Object
        (
            [idx] => 3
            [name] => test3
            [title] => Caffeination, Yes!
            [email] => test3@test.com
            [id] => 3
            [slug] => caffeination-yes
            [body] => Worlds largest coffee shop open onsite nested coffee shop for staff only.
        )

)


* Query : SELECT * FROM `my_table` JOIN `news` ON `my_table`.`idx` = `news`.`id`