Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Menggunakan NOT IN Subqueries dengan Pembina Pertanyaan CodeIgniter?

Bagaimana untuk Menggunakan NOT IN Subqueries dengan Pembina Pertanyaan CodeIgniter?

DDD
DDDasal
2024-11-29 12:19:11253semak imbas

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

Menggunakan NOT IN Subqueries dalam CodeIgniter's Query Builder

Dalam operasi pangkalan data, selalunya perlu melakukan pemilihan bersyarat berdasarkan data yang diambil daripada jadual lain. Subkueri NOT IN MySQL menawarkan cara untuk mengecualikan baris daripada pertanyaan utama berdasarkan ketiadaannya dalam subkueri.

Pelaksanaan CodeIgniter

Untuk mereplikasi pertanyaan MySQL yang disebut dalam soalan:

PILIH *
DARI sijil
WHERE id NOT IN (SELECT id_cer FROM revokace);

menggunakan kaedah pembina pertanyaan CodeIgniter, anda boleh menggunakan pendekatan berikut:

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

Kaedah where() membenarkan untuk menghantar terus sebarang rentetan untuk dimasukkan ke dalam pertanyaan, mengelakkan potensi bercanggah dengan mekanisme melarikan diri CodeIgniter. Walau bagaimanapun, anda dinasihatkan untuk berhati-hati apabila menggunakan pendekatan ini dengan input yang dibekalkan pengguna untuk mengelakkan serangan suntikan SQL.

Perpustakaan Subkueri Dioptimumkan

Sebagai alternatif, pertimbangkan untuk menggunakan subkueri khusus perpustakaan yang boleh meningkatkan kebolehbacaan kod dan memudahkan pertanyaan yang kompleks. Contoh yang diberikan akan diterjemahkan kepada yang berikut:

$this->db->select('*')
         ->from('certs')
         ->where('id', $this->subquery->subquery('where_in', function ($subq) {
             $subq->select('id_cer')
                  ->from('revokace');
         }, 'id', FALSE));

Pustaka ini memudahkan pembinaan subkueri dan membolehkan pernyataan SQL yang lebih fleksibel dan ekspresif. Sama ada anda memilih pendekatan rentetan langsung atau menggunakan perpustakaan, kaedah ini memberi kuasa kepada anda untuk melaksanakan subkueri NOT IN dalam CodeIgniter dengan berkesan.

Atas ialah kandungan terperinci Bagaimana untuk Menggunakan NOT IN Subqueries dengan Pembina Pertanyaan CodeIgniter?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn