Lisibilité des sous-requêtes EXISTS
Lors de l'utilisation des sous-requêtes EXISTS, il existe deux options principales :
SELECT foo FROM bar WHERE EXISTS (SELECT * FROM baz WHERE baz.id = bar.id); SELECT foo FROM bar WHERE EXISTS (SELECT 1 FROM baz WHERE baz.id = bar.id);
À partir d'un Du point de vue de la performance, les deux sont équivalents. Cependant, la question se pose de la lisibilité.
Manuels et utilisation courante
Selon les recherches menées sur divers manuels de SGBDR et les recherches en ligne, il semble y avoir un fossé :
Les résultats de la recherche Stack Overflow indiquent une prévalence légèrement plus élevée de SELECT * dans code.
Approche intuitive
La question pose si SELECT * est plus intuitif. Cependant, la réponse suggère que ce n’est pas le choix le plus intuitif. Au lieu de cela, SELECT 1 est recommandé car :
Conclusion
Bien qu'il n'y ait pas de consensus clair, SELECT 1 dans les sous-requêtes EXISTS est considéré comme plus intuitif. Il met l’accent sur l’aspect existence, s’aligne sur les normes et dissipe les idées fausses. En fin de compte, la préférence de lisibilité peut varier en fonction de la compréhension et du style du développeur.
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!