Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menyoal Berbilang Lajur dengan Cekap dengan Klausa SQL IN?

Bagaimana untuk Menyoal Berbilang Lajur dengan Cekap dengan Klausa SQL IN?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-28 12:53:16234semak imbas

How to Efficiently Query Multiple Columns with the SQL IN Clause?

Klausa SQL IN untuk Berbilang Lajur

Apabila melakukan pertanyaan pada jadual berdasarkan berbilang lajur menggunakan klausa IN, membina pertanyaan tunggal dengan berbilang keadaan ATAU menjadi membosankan . Sebaliknya, seseorang boleh menggunakan pendekatan berikut:

Menggunakan Klausa Tuple IN

Penyelesaian paling langsung ialah menggunakan versi tuple bagi klausa IN. Contohnya, memandangkan jadual Pengguna dengan lajur FirstName, LastName dan City, pertanyaan untuk mendapatkan semula bandar bagi senarai tuple (Nama Pertama, Nama Akhir) ialah:

SELECT City
FROM User
WHERE (firstName, lastName) IN (('a', 'b'), ('c', 'd'));

Mencipta Jadual Pementasan

Pilihan lain ialah membuat jadual pementasan dengan semua kemungkinan gabungan (Nama Pertama, Nama Akhir) dan kemudian melakukan gabungan antara jadual ini dan jadual Pengguna. Walau bagaimanapun, kaedah ini memerlukan persediaan dan penyelenggaraan tambahan, yang mungkin tidak sesuai untuk set data yang besar.

Pengesyoran

Untuk senario umum, pendekatan klausa tuple IN lebih disukai kerana kesederhanaan dan fleksibilitinya. Ia menghapuskan keperluan untuk pembinaan pertanyaan kompleks atau jadual tambahan. Walau bagaimanapun, jika data carian disimpan di luar pangkalan data, kaedah alternatif seperti sambung atau subkueri mungkin diperlukan.

Atas ialah kandungan terperinci Bagaimana untuk Menyoal Berbilang Lajur dengan Cekap dengan Klausa SQL IN?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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