<h2>$builder->where()</h2>
<p>이 함수를 사용하면 다섯 가지 방법중 하나를 사용하여 WHERE 절을 설정할 수 있습니다.</p>
<ol>
<li>key/value 방법
<pre>$builder->where('idx', 1)->get()->getResult();
<?= print_r($builder->where('idx', 1)->get()->getResult(), true) ?></pre>
<p style='color:blue'>* Query : <?= $db->getLastQuery() ?></p>
<p>등호(=)가 추가됩니다.<br>`where()` 함수를 여러번 호출하면 AND와 함께 체인으로 연결됩니다.</p>
<pre>$builder->where('idx', 1)->where('name', 'test1')->get()->getResult();
<?= print_r($builder->where('idx', 1)->where('name', 'test1')->get()->getResult(), true) ?></pre>
<p style='color:blue'>* Query : <?= $db->getLastQuery() ?></p>
</li>
<li>사용자 key/value 방법
<p>비교를 제어하기 위해 첫 번째 매개 변수에 연산자를 포함시킬 수 있습니다</p>
<pre>$builder->where('name !=', 'test1')->where('idx <', 2)->get()->getResult();
<?= print_r($builder->where('name !=', 'test1')->where('idx <=', 2)->get()->getResult(), true) ?></pre>
<p style='color:blue'>* Query : <?= $db->getLastQuery() ?></p>
</li>
<li>연관 배열 방법
<p>이 방법을 사용할 때 사용자 연산자를 포함시킬 수 있습니다.</p>
<pre>$builder->where(['name' => 'test1', 'idx <' => 3])->get()->getResult();
<?= print_r($builder->where(['name' => 'test1', 'idx <' => 3])->get()->getResult(), true) ?></pre>
<p style='color:blue'>* Query : <?= $db->getLastQuery() ?></p>
</li>
<li>맞춤 문자열
<p>비교절을 직접 작성할 수 있습니다.</p>
<pre>$builder->where("name = 'test2' AND idx <= 3")->get()->getResult();
<?= print_r($builder->where("name = 'test2' AND idx <= 3")->get()->getResult(), true) ?></pre>
<p style='color:blue'>* Query : <?= $db->getLastQuery() ?></p>
<p>`$builder->where()`는 세 번째 매개 변수를 옵션으로 허용하며, `false`로 설정하면 필드 또는 테이블 이름을 보호하지 않습니다.</p>
<pre>$builder->where("name IN ('test1', 'test2')", null, false)->get()->getResult();
<?= print_r($builder->where("name IN ('test1', 'test2')", null, false)->get()->getResult(), true) ?></pre>
<p style='color:blue'>* Query : <?= $db->getLastQuery() ?></p>
</li>
<li>서브 쿼리
<p>익명 함수를 사용하여 서브 쿼리를 만들 수 있습니다.</p>
<pre>$builder->where('idx <', function (\CodeIgniter\Database\BaseBuilder $builder) {
return $builder->selectMax('idx')->from('my_table');
})->get()->getResult();
<?= print_r($builder->where('idx <', function (\CodeIgniter\Database\BaseBuilder $builder) {
return $builder->selectMax('idx')->from('my_table');
})->get()->getResult()) ?></pre>
<p style='color:blue'>* Query : <?= $db->getLastQuery() ?></p>
</li>
</ol>
<h2>$builder->orWhere()</h2>
<p>이 함수는 여러 인스턴스가 OR로 결합된다는 점을 제외하고 위의 함수와 동일합니다.</p>
<pre>$builder->where('name', 'test2')->orWhere('name', 'test3')->get()->getResult();
<?= print_r($builder->where('name', 'test2')->orWhere('name', 'test3')->get()->getResult(), true) ?></pre>
<p style='color:blue'>* Query : <?= $db->getLastQuery() ?></p>
<h2>$builder->whereIn()</h2>
<p>AND로 결합된 WHERE field IN ('item', 'item') SQL 쿼리를 생성합니다.</p>
<pre>$builder->where('name', 'test2')->whereIn('idx', [1,2])->get()->getResult();
<?= print_r($builder->where('name', 'test2')->whereIn('idx', [1,2])->get()->getResult(), true) ?></pre>
<p style='color:blue'>* Query : <?= $db->getLastQuery() ?></p>
<p>배열 대신 서브 쿼리를 사용할 수 있습니다.</p>
<pre>$builder->where('name', 'test2')->whereIn('idx', function (\CodeIgniter\Database\BaseBuilder $builder) {
return $builder->select('idx')->from('my_table');
})->get()->getResult();
<?= print_r($builder->where('name', 'test2')->whereIn('idx', function (\CodeIgniter\Database\BaseBuilder $builder) {
return $builder->select('idx')->from('my_table');
})->get()->getResult(), true) ?></pre>
<p style='color:blue'>* Query : <?= $db->getLastQuery() ?></p>
<h2>$builder->orWhereIn()</h2>
<p>OR로 결합된 WHERE field IN ('item', 'item') SQL 쿼리를 생성합니다.</p>
<pre>$builder->where('name', 'test2')->orWhereIn('idx', [1,2])->get()->getResult();
<?= print_r($builder->where('name', 'test2')->orWhereIn('idx', [1,2])->get()->getResult(), true) ?></pre>
<p style='color:blue'>* Query : <?= $db->getLastQuery() ?></p>
<p>배열 대신 서브 쿼리를 사용할 수 있습니다.</p>
<pre>$builder->where('name', 'test2')->orWhereIn('idx', function (\CodeIgniter\Database\BaseBuilder $builder) {
return $builder->select('idx')->from('my_table')->where('idx <', 1);
})->get()->getResult();
<?= print_r($builder->where('name', 'test2')->orWhereIn('idx', function (\CodeIgniter\Database\BaseBuilder $builder) {
return $builder->select('idx')->from('my_table')->where('idx <', 1);
})->get()->getResult(), true) ?></pre>
<p style='color:blue'>* Query : <?= $db->getLastQuery() ?></p>
<h2>$builder->whereNotIn()</h2>
<p>AND로 결합된 WHERE field NOT IN ('item', 'item') SQL 쿼리를 생성합니다.</p>
<pre>$builder->where('name !=', 'test2')->whereNotIn('idx', [1,2])->get()->getResult();
<?= print_r($builder->where('name !=', 'test2')->whereNotIn('idx', [1,2])->get()->getResult(), true) ?></pre>
<p style='color:blue'>* Query : <?= $db->getLastQuery() ?></p>
<p>배열 대신 서브 쿼리를 사용할 수 있습니다.</p>
<pre>$builder->where('name !=', 'test2')->whereNotIn('idx', function (\CodeIgniter\Database\BaseBuilder $builder) {
return $builder->select('idx')->from('my_table')->whereIn('idx', [1,2]);
})->get()->getResult();
<?= print_r($builder->where('name !=', 'test2')->whereNotIn('idx', function (\CodeIgniter\Database\BaseBuilder $builder) {
return $builder->select('idx')->from('my_table')->whereIn('idx', [1,2]);
})->get()->getResult(), true) ?></pre>
<p style='color:blue'>* Query : <?= $db->getLastQuery() ?></p>
<h2>$builder->orWhereNotIn()</h2>
<p>OR로 결합된 WHERE field NOT IN ('item', 'item') SQL 쿼리를 생성합니다.</p>
<pre>$builder->where('name !=', 'test2')->orWhereNotIn('idx', [1,2])->get()->getResult();
<?= print_r($builder->where('name !=', 'test2')->orWhereNotIn('idx', [1,2])->get()->getResult(), true) ?></pre>
<p style='color:blue'>* Query : <?= $db->getLastQuery() ?></p>
<p>배열 대신 서브 쿼리를 사용할 수 있습니다.</p>
<pre>$builder->where('name !=', 'test2')->orWhereNotIn('idx', function (\CodeIgniter\Database\BaseBuilder $builder) {
return $builder->select('idx')->from('my_table')->whereIn('idx', [1,2]);
})->get()->getResult();
<?= print_r($builder->where('name !=', 'test2')->orWhereNotIn('idx', function (\CodeIgniter\Database\BaseBuilder $builder) {
return $builder->select('idx')->from('my_table')->whereIn('idx', [1,2]);
})->get()->getResult(), true) ?></pre>
<p style='color:blue'>* Query : <?= $db->getLastQuery() ?></p>