Heim > Datenbank > MySQL-Tutorial > EXISTS-Unterabfragen: SELECT * oder SELECT 1 – Was ist besser lesbar?

EXISTS-Unterabfragen: SELECT * oder SELECT 1 – Was ist besser lesbar?

Patricia Arquette
Freigeben: 2024-12-29 16:04:12
Original
959 Leute haben es durchsucht

EXISTS Subqueries: SELECT * or SELECT 1 – Which is More Readable?

Lesbarkeit von EXISTS-Unterabfragen

Bei der Verwendung von EXISTS-Unterabfragen gibt es zwei Hauptoptionen:

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);
Nach dem Login kopieren

Von a Aus Sicht der Leistung sind beide gleichwertig. Es stellt sich jedoch die Frage nach der Lesbarkeit.

Handbücher und allgemeine Verwendung

Laut den Untersuchungen zu verschiedenen RDBMS-Handbüchern und Online-Suchen scheint es eine Kluft zu geben:

  • Microsoft SQL, Oracle und MySQL bevorzugen SELECT * in ihren Beispiele.
  • PostgreSQL bevorzugt SELECT 1.
  • SQLite stellt keine expliziten Beispiele bereit.

Die Stack Overflow-Suchergebnisse weisen auf eine etwas höhere Prävalenz von SELECT * in hin Code.

Intuitiv Ansatz

Die Frage stellt sich, ob SELECT * intuitiver ist. Die Antwort deutet jedoch darauf hin, dass dies nicht die intuitivste Wahl ist. Stattdessen wird SELECT 1 empfohlen, weil:

  • Es gibt explizit die Existenzbedingung an.
  • Es entspricht dem ANSI-Standard, der angibt, dass die von der Unterabfrage zurückgegebenen spezifischen Zeilen irrelevant sind für EXISTS.
  • Es widerlegt den Mythos, dass SELECT 1 eine Abkürzung für Existenz ist Überprüfung.

Schlussfolgerung

Obwohl es keinen klaren Konsens gibt, wird argumentiert, dass SELECT 1 in EXISTS-Unterabfragen intuitiver ist. Es betont den Existenzaspekt, orientiert sich an Standards und räumt mit Missverständnissen auf. Letztendlich kann die bevorzugte Lesbarkeit je nach Verständnis und Stil des Entwicklers variieren.

Das obige ist der detaillierte Inhalt vonEXISTS-Unterabfragen: SELECT * oder SELECT 1 – Was ist besser lesbar?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage