首頁 > 後端開發 > php教程 > 如何使用 CodeIgniter Active Record 執行帶有 NOT IN 子查詢的 SELECT 查詢?

如何使用 CodeIgniter Active Record 執行帶有 NOT IN 子查詢的 SELECT 查詢?

Barbara Streisand
發布: 2024-11-26 11:35:11
原創
567 人瀏覽過

How to Execute a SELECT Query with a NOT IN Subquery using CodeIgniter Active Record?

CodeIgniter Active Record:使用NOT IN 子查詢執行SELECT 查詢

在這種情況下,您希望從' 檢索所有行' revokace' 表中不存在的certs' 表。此查詢的傳統 SQL 語法為:

SELECT *
FROM certs
WHERE id NOT IN (SELECT id_cer FROM revokace);
登入後複製

要使用 CodeIgniter 的 Active Record 模式實現此目的,您可以利用 '->where()' 方法。但是,處理查詢中特殊字元的潛在衝突非常重要。

解決方案:

CodeIgniter 的 '->where()' 方法方便地支援傳遞自訂查詢字串直接存入資料庫。這允許您將查詢編寫為:

$this->db->select('*')
         ->from('certs')
         ->where('`id` NOT IN (SELECT `id_cer` FROM `revokace`)', NULL, FALSE);
登入後複製

在此查詢中,「NULL,FALSE」參數確保 CodeIgniter 不會執行任何轉義,從而保留子查詢的完整性。

可選替代方案:

為了進一步最佳化程式碼,請考慮使用 CodeIgniter子查詢庫。它透過提供專用介面簡化了子查詢的建立。使用子查詢庫的查詢將如下所示:

$this->db->select('*')
         ->from('certs');

$sub = $this->subquery->start_subquery('where_in')
                       ->select('id_cer')
                       ->from('revokace');

$this->subquery->end_subquery('id', FALSE);
登入後複製

以上是如何使用 CodeIgniter Active Record 執行帶有 NOT IN 子查詢的 SELECT 查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板