ホームページ > バックエンド開発 > PHPチュートリアル > CodeIgniter のクエリ ビルダーで NOT IN サブクエリを使用する方法

CodeIgniter のクエリ ビルダーで NOT IN サブクエリを使用する方法

DDD
リリース: 2024-11-29 12:19:11
オリジナル
236 人が閲覧しました

How to Use NOT IN Subqueries with CodeIgniter's Query Builder?

CodeIgniter のクエリ ビルダーでの NOT IN サブクエリの利用

データベース操作では、多くの場合、他のテーブルから取得したデータに基づいて条件付き選択を実行する必要があります。 MySQL の NOT IN サブクエリは、サブクエリに行が存在しないことに基づいてプライマリ クエリから行を除外する方法を提供します。

CodeIgniter の実装

で説明されている MySQL クエリを複製するには質問:

SELECT *<br>FROM certs<br>WHERE id NOT IN (SELECT id_cer FROM revokace);<br>

CodeIgniter のクエリ ビルダー メソッドを使用すると、次のアプローチを使用できます。

$this->db->select('*')
         ->from('certs')
         ->where('`id` NOT IN (SELECT `id_cer` FROM `revokace`)', NULL, FALSE);</p>
<p>where() メソッドを使用すると、任意の文字列を直接渡すことができ、クエリを実行し、CodeIgniter のエスケープ メカニズムとの潜在的な競合を回避します。ただし、SQL インジェクション攻撃を防ぐために、ユーザー指定の入力でこのアプローチを使用する場合は注意することをお勧めします。</p>
<p><strong>最適化されたサブクエリ ライブラリ</strong></p>
<p>または、特殊なサブクエリの利用を検討してください。コードの可読性を高め、複雑なクエリを簡素化できるライブラリ。与えられた例は次のように変換されます:</p>
<pre class="brush:php;toolbar:false">$this->db->select('*')
         ->from('certs')
         ->where('id', $this->subquery->subquery('where_in', function ($subq) {
             $subq->select('id_cer')
                  ->from('revokace');
         }, 'id', FALSE));
ログイン後にコピー

このライブラリはサブクエリの構築を簡素化し、より柔軟で表現力豊かな SQL ステートメントを可能にします。直接文字列アプローチを選択する場合でも、ライブラリを利用する場合でも、これらのメソッドを使用すると、CodeIgniter で NOT IN サブクエリを効果的に実装できます。

以上がCodeIgniter のクエリ ビルダーで NOT IN サブクエリを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート