Maison > développement back-end > tutoriel php > Comment utiliser les sous-requêtes NOT IN avec le générateur de requêtes de CodeIgniter ?

Comment utiliser les sous-requêtes NOT IN avec le générateur de requêtes de CodeIgniter ?

DDD
Libérer: 2024-11-29 12:19:11
original
292 Les gens l'ont consulté

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

Utilisation des sous-requêtes NOT IN dans le générateur de requêtes de CodeIgniter

Dans les opérations de base de données, il est souvent nécessaire d'effectuer des sélections conditionnelles basées sur les données extraites d'autres tables. La sous-requête NOT IN de MySQL offre un moyen d'exclure des lignes d'une requête principale en fonction de leur absence dans une sous-requête.

Implémentation de CodeIgniter

Pour répliquer la requête MySQL mentionnée dans le question :

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

en utilisant les méthodes de création de requêtes de CodeIgniter, vous pouvez utiliser l'approche suivante :

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

La méthode Where() permet de transmettre directement n'importe quelle chaîne à incorporer dans la requête, évitant ainsi les conflits potentiels avec la méthode CodeIgniter. mécanismes d’évasion. Cependant, il est conseillé de faire preuve de prudence lorsque vous utilisez cette approche avec des entrées fournies par l'utilisateur afin d'éviter les attaques par injection SQL.

Bibliothèque de sous-requêtes optimisée

Vous pouvez également envisager d'utiliser une sous-requête spécialisée. bibliothèque qui peut améliorer la lisibilité du code et simplifier les requêtes complexes. L'exemple donné se traduirait par ce qui suit :

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

Cette bibliothèque simplifie la construction de sous-requêtes et permet des instructions SQL plus flexibles et plus expressives. Que vous optiez pour l'approche par chaîne directe ou que vous utilisiez une bibliothèque, ces méthodes vous permettent d'implémenter efficacement les sous-requêtes NOT IN dans CodeIgniter.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal