Modèle de base de données : UNION ALL pour la recherche progressive
Lors de la recherche de données dans une base de données, il est parfois nécessaire d'ajuster les critères de recherche progressivement jusqu'à ce que un résultat est trouvé. C'est ce qu'on appelle communément une « recherche progressive ».
Considérez le scénario suivant : vous souhaitez rechercher une seule ligne dans la table d'images en fonction d'un nom et d'un ID de groupe. Si cela ne produit pas de résultat, vous souhaitez rechercher le même nom sans l'ID de groupe, et si cela ne donne toujours pas de résultat, vous souhaitez rechercher l'ID de groupe sans le nom.
La requête de recherche progressive
La requête SQL la plus efficace pour la recherche progressive est :
SELECT * FROM image WHERE name = 'text' AND group_id = 10 UNION ALL SELECT * FROM image WHERE name = 'text' UNION ALL SELECT * FROM image WHERE group_id = 10 LIMIT 1;
Explication
Optimisation
Pour garantir des performances optimales, il est crucial de créer les index suivants sur l'image table :
CREATE INDEX image_name_grp_idx ON image (name, group_id); CREATE INDEX image_grp_idx ON image (group_id);
Évolutivité
Cette requête de recherche progressive est évolutive et peut être adaptée pour rechercher plusieurs paramètres avec une précision variable. Ajoutez simplement des instructions SELECT supplémentaires pour chaque paramètre et ajustez les critères en conséquence.
Conclusion
La requête UNION ALL présentée ici est une solution polyvalente pour la recherche progressive. Il vous permet de rechercher des données de manière incrémentielle tout en garantissant à la fois rapidité et précision. En suivant ces directives, vous pouvez mettre en œuvre efficacement la recherche progressive dans vos applications de base de données.
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!