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
961 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!

sumber:php.cn
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