Maison > base de données > tutoriel mysql > Comment puis-je utiliser efficacement plusieurs conditions LIKE dans une requête de base de données ?

Comment puis-je utiliser efficacement plusieurs conditions LIKE dans une requête de base de données ?

Susan Sarandon
Libérer: 2025-01-08 14:26:41
original
541 Les gens l'ont consulté

How Can I Efficiently Use Multiple LIKE Conditions in a Database Query?

Au-delà de la OU : une approche plus efficace face à plusieurs conditions LIKE

Les recherches dans les bases de données nécessitent souvent des critères complexes, impliquant fréquemment plusieurs conditions LIKE. Bien que l'utilisation de OR soit simple, elle peut s'avérer inefficace et moins flexible pour une correspondance de modèles étendue. Cet article présente une méthode supérieure utilisant des tables temporaires.

L'efficacité des tables temporaires

Pour gérer efficacement plusieurs modèles LIKE, créez une table temporaire pour stocker ces modèles. Ce tableau, par exemple, pourrait être nommé patterns avec une seule colonne, pattern, contenant le type de données approprié (par exemple, VARCHAR). Si vos modèles sont « ABC% », « XYZ% » et « PQR% », la création et le remplissage de la table ressembleraient à ceci :

<code class="language-sql">CREATE TEMPORARY TABLE patterns (
  pattern VARCHAR(20)
);

INSERT INTO patterns VALUES ('ABC%'), ('XYZ%'), ('PQR%');</code>
Copier après la connexion

Rejoindre pour l'optimisation de la correspondance de modèles

Une fois la table temporaire remplie, une opération JOIN filtre efficacement votre table principale (tbl) en fonction des modèles. Toute ligne de tbl correspondant à n'importe quel motif de patterns sera incluse dans les résultats. La requête serait :

<code class="language-sql">SELECT t.*
FROM tbl t
JOIN patterns p
ON (t.col LIKE p.pattern);</code>
Copier après la connexion

Gestion des résultats en double avec DISTINCT

Si une colonne peut correspondre à plusieurs modèles, entraînant des lignes en double, utilisez le mot-clé DISTINCT pour renvoyer uniquement des résultats uniques :

<code class="language-sql">SELECT DISTINCT t.*
FROM tbl t
JOIN patterns p
ON (t.col LIKE p.pattern);</code>
Copier après la connexion

Résumé : Une approche supérieure

L'utilisation de tables temporaires pour gérer plusieurs conditions LIKE offre une solution plus propre, plus efficace et adaptable. Cette séparation des modèles simplifie la gestion et l'expansion des critères de recherche. Le résultat est une amélioration des performances, de la lisibilité et de la maintenabilité des requêtes.

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