Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Menggunakan Klausa IN untuk Menyoal Berbilang Lajur dalam SQL?

Bagaimanakah Saya Boleh Menggunakan Klausa IN untuk Menyoal Berbilang Lajur dalam SQL?

Patricia Arquette
Lepaskan: 2024-12-28 12:02:10
asal
484 orang telah melayarinya

How Can I Use the IN Clause to Query Multiple Columns in SQL?

Menyoal Berbilang Lajur dalam Klausa IN dalam SQL

Apabila menanyakan jadual pangkalan data berdasarkan set nilai untuk lajur tertentu, Klausa IN ialah pilihan yang mudah. Walau bagaimanapun, apabila berurusan dengan berbilang lajur, klausa IN menjadi tidak boleh digunakan.

Untuk mengatasi cabaran ini, pendekatan biasa melibatkan penggunaan cantuman atau klausa EXISTS. Walau bagaimanapun, kaedah ini memerlukan kedua-dua jadual utama dan data carian untuk hadir dalam pangkalan data.

Pertimbangkan kes penggunaan di mana anda mempunyai jadual Pengguna dengan lajur (Nama depan, Nama akhir, Bandar) dan anda perlu dapatkan semula bandar untuk senarai tupel (nama pertama, Nama akhir). Dua penyelesaian berpotensi muncul:

Penyelesaian 1:

Bina pertanyaan SELECT panjang yang melibatkan OR syarat:

SELECT city FROM user WHERE (firstName=x and lastName=y) or (firstName=a and lastName=b) or ...
Salin selepas log masuk

Penyelesaian 2:

Buat jadual pementasan yang mengandungi semua nilai firstName dan lastName dan lakukan cantuman antara jadual Pengguna dan jadual pementasan.

Penyelesaian Alternatif:

Nasib baik, terdapat cara mudah untuk membuat pertanyaan berbilang lajur menggunakan DALAM klausa:

SELECT city FROM user WHERE (firstName, lastName) IN (('a', 'b'), ('c', 'd'));
Salin selepas log masuk

Sqlfiddle Demonstrasi:

[Demo Sqlfiddle]()

Penyelesaian ini secara berkesan menangani masalah menanyakan berbilang lajur dalam klausa IN tanpa menggunakan gabungan atau klausa EXISTS. Ia menyediakan pendekatan yang cekap dan ringkas untuk mendapatkan semula data yang diingini.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Klausa IN untuk Menyoal Berbilang Lajur dalam SQL?. 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