Rumah > pangkalan data > tutorial mysql > EXISTS Subqueries: SELECT * atau SELECT 1 – Manakah yang Lebih Boleh Dibaca?

EXISTS Subqueries: SELECT * atau SELECT 1 – Manakah yang Lebih Boleh Dibaca?

Patricia Arquette
Lepaskan: 2024-12-29 16:04:12
asal
1013 orang telah melayarinya

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

Kebolehbacaan Subkueri EXISTS

Apabila menggunakan subkueri EXISTS, terdapat dua pilihan utama:

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);
Salin selepas log masuk

Daripada perspektif prestasi, kedua-duanya adalah setara. Walau bagaimanapun, persoalan timbul tentang kebolehbacaan.

Manual dan Penggunaan Biasa

Seperti penyelidikan yang dijalankan ke atas pelbagai manual RDBMS dan carian dalam talian, nampaknya terdapat perbezaan:

  • Microsoft SQL, Oracle dan MySQL memilih SELECT * dalam contoh.
  • PostgreSQL lebih suka SELECT 1.
  • SQLite tidak memberikan sebarang contoh yang jelas.

Hasil carian Stack Overflow menunjukkan kelaziman SELECT * yang lebih tinggi sedikit. kod.

Intuitif Pendekatan

Persoalannya menimbulkan sama ada SELECT * lebih intuitif. Walau bagaimanapun, jawapannya menunjukkan bahawa ia bukanlah pilihan yang paling intuitif. Sebaliknya, PILIH 1 disyorkan kerana:

  • Ia menyatakan secara eksplisit syarat kewujudan.
  • Ia sejajar dengan piawaian ANSI, yang menyatakan bahawa baris khusus yang dikembalikan oleh subkueri adalah tidak relevan untuk EXISTS.
  • Ia menafikan mitos bahawa PILIH 1 ialah jalan pintas untuk kewujudan menyemak.

Kesimpulan

Walaupun tiada konsensus yang jelas, SELECT 1 dalam subkueri EXISTS dikatakan lebih intuitif. Ia menekankan aspek kewujudan, selaras dengan piawaian, dan menghilangkan salah tanggapan. Akhirnya, keutamaan kebolehbacaan mungkin berbeza-beza bergantung pada pemahaman dan gaya pembangun.

Atas ialah kandungan terperinci EXISTS Subqueries: SELECT * atau SELECT 1 – Manakah yang Lebih Boleh Dibaca?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan