Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Membandingkan Tuple dengan Cekap dalam Klausa `IN` SQL?

Bagaimanakah Saya Boleh Membandingkan Tuple dengan Cekap dalam Klausa `IN` SQL?

Linda Hamilton
Linda Hamiltonasal
2025-01-03 00:37:38834semak imbas

How Can I Efficiently Compare Tuples in SQL's `IN` Clause?

Menggunakan Tuple dalam Klausa "IN" SQL

Apabila bekerja dengan klausa WHERE yang kompleks, selalunya perlu membandingkan medan atau set medan dengan senarai nilai. Dalam kes membandingkan tupel, terdapat beberapa pilihan yang tersedia.

Klausa IN dengan Nilai Kod Keras

Satu pendekatan ialah menggunakan nilai berkod keras dalam klausa IN. Walau bagaimanapun, ini boleh menjadi tidak cekap untuk jadual besar, kerana setiap rekod memerlukan penggabungan rentetan dan penukaran.

Menggunakan Klausa VALUE (SQL Standard)

Pilihan yang lebih cekap untuk Standard Pangkalan data SQL-92 adalah menggunakan klausa VALUES dalam operator IN. Ini melibatkan melampirkan senarai tuple dalam kurungan dan menambah kata kunci VALUES.

SELECT *
FROM mytable
WHERE (group_id, group_type) IN (
                                VALUES ('1234-567', 2), 
                                       ('4321-765', 3), 
                                       ('1111-222', 5)
                               );

Keserasian Pangkalan Data

Adalah penting untuk ambil perhatian bahawa sintaks ini tidak disokong oleh semua SQL produk. Mulai SQL Server 2022, ciri ini dianggap tidak dirancang. Walau bagaimanapun, PostgreSQL dan SQLite menyokong sintaks ini.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membandingkan Tuple dengan Cekap dalam Klausa `IN` SQL?. 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