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!