ホームページ > バックエンド開発 > PHPチュートリアル > Active Record または Subquery Library を使用して CodeIgniter でサブクエリ フィルタリングを実装するにはどうすればよいですか?

Active Record または Subquery Library を使用して CodeIgniter でサブクエリ フィルタリングを実装するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-11-22 03:06:09
オリジナル
764 人が閲覧しました

How to Implement Subquery Filtering in CodeIgniter using Active Record or the Subquery Library?

CodeIgniter でのサブクエリ フィルタリング: クエリ ビルダーのアプローチ

当面のタスクは、次の SQL クエリを CodeIgniter のアクティブ レコード構文に変換することです。

SELECT *
FROM certs
WHERE id NOT IN (SELECT id_cer FROM revokace);
ログイン後にコピー

このクエリはすべてを取得します「revokace」テーブルから「id_cer」を選択するサブクエリに「id」列が存在しない「certs」テーブルの行。

アクティブ レコードの実装

CodeIgniter のクエリ ビルダーは、次のような簡単なソリューションを提供します。

$this->db->select('*')
         ->from('certs')
         ->where('`id` NOT IN (SELECT `id_cer` FROM `revokace`)', NULL, FALSE);
ログイン後にコピー

「where()」メソッドは生の SQL 文字列を最初の引数として受け入れ、サブクエリをメイン クエリに直接組み込むことができます。 2 番目と 3 番目の引数 (NULL と FALSE) は、CodeIgniter がサブクエリをエスケープするのを防ぎます。エスケープしないとクエリが中断されてしまいます。

サブクエリ ライブラリ拡張

あるいは、サブクエリ ライブラリ:

$this->db->select('*')
         ->from('certs')
         ->subquery('where_in', function($subquery) {
             $subquery->select('id_cer')
                      ->from('revokace');
         }, 'id', FALSE);
ログイン後にコピー

この手法は、より簡潔で、サブクエリを CodeIgniter クエリに組み込むための再利用可能なソリューション。

以上がActive Record または Subquery Library を使用して CodeIgniter でサブクエリ フィルタリングを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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