Rumah >pangkalan data >tutorial mysql >EXISTS vs. IN: Bilakah Anda Harus Menggunakan Setiap Operator SQL?
Perbezaan antara EXISTS dan IN dalam SQL
SQL menyediakan dua operator EXISTS
dan IN
, yang mempunyai kegunaan tersendiri dalam memproses subkueri.
EXISTS
menguji sama ada rekod wujud dalam subkueri, mengembalikan nilai Boolean (TRUE atau FALSE). Contohnya:
<code class="language-sql">EXISTS (SELECT * FROM [table] WHERE ...)</code>
Pertanyaan ini mengembalikan BENAR jika terdapat sekurang-kurangnya satu baris yang sepadan dalam subkueri, tanpa mengira bilangan padanan yang tepat. Ini amat berguna dalam situasi di mana anda hanya perlu menentukan sama ada padanan wujud, seperti dalam pernyataan IF bersyarat.
Sebaliknya, pengendali IN
membenarkan membandingkan nilai dalam medan dengan senarai nilai tertentu. Biasanya digunakan untuk senarai statik:
<code class="language-sql">SELECT * FROM [table] WHERE [field] IN (1, 2, 3)</code>Pengendali
IN
menyemak sama ada nilai dalam medan sepadan dengan mana-mana nilai dalam senarai. Walaupun pengoptimum pertanyaan boleh memilih pelan pelaksanaan yang sama sama ada menggunakan IN
atau JOIN
, pelaksanaan terdahulu mungkin lebih suka menggunakan cantuman bersarang untuk IN
pertanyaan.
Atas ialah kandungan terperinci EXISTS vs. IN: Bilakah Anda Harus Menggunakan Setiap Operator SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!