Maison > base de données > tutoriel mysql > Comment regrouper les clauses WHERE dans CodeIgniter pour des conditions complexes ?

Comment regrouper les clauses WHERE dans CodeIgniter pour des conditions complexes ?

Patricia Arquette
Libérer: 2024-11-11 03:25:02
original
940 Les gens l'ont consulté

How do I group  WHERE clauses in CodeIgniter for complex conditions?

Regroupement de clauses WHERE dans Codeigniter

Pour regrouper plusieurs clauses WHERE dans une condition complexe, vous pouvez utiliser group_start() et group_end() méthodes dans Codeigniter. Ces méthodes vous permettent de créer des conditions WHERE imbriquées.

Codeigniter 3 :

$this->db->select()
->from('users')
->where('name !=', 'Joe')
->group_start() // Open bracket
->where('age <', 69)
->or_where('id <', $id)
->group_end(); // Close bracket
Copier après la connexion

Codeigniter 4 :

$builder->select('*')
->from('users')
->where('name !=', 'Joe')
->groupStart()
->where('age <', 69)
->orWhere('id <', $id)
->groupEnd();
Copier après la connexion

Ce code révisé utilise group_start() et group_end() pour mettre les conditions d'âge et d'identification entre parenthèses. Cela garantit que la condition ET (âge < 69) est évaluée en premier, suivie de la condition OU (id < $id).

Gestion des requêtes dynamiques :

Votre requête d'origine a été générée dynamiquement en fonction des paramètres utilisateur. Pour utiliser les méthodes de regroupement dans de tels scénarios, vous pouvez enfermer les conditions WHERE souhaitées dans une boucle et utiliser group_start() et group_end() de manière appropriée.

if ($price_range) {
  $price_array = explode('.', $price_range);
  $this->db->where('name !=', 'Joe');

  for ($i = 0; $i < count($price_array); $i++) {
    if ($i === 0) {
      $this->db->group_start();
      $this->db->where('places.price_range', $price_array[$i]);
    } else {
      $this->db->or_where('places.price_range', $price_array[$i]);
    }
  }
  $this->db->group_end();
}

Ce code modifié utilise group_start() et group_end() pour regrouper les conditions de la fourchette de prix, garantissant une bonne priorité des opérateurs et évitant les problèmes d'évaluation.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal