Menggunakan Tuple dalam Klausa SQL "IN" dengan Nilai Berkod Keras
Dalam SQL, klausa "IN" membenarkan anda menyemak sama ada nilai lajur sepadan dengan sebarang nilai dalam senarai tertentu. Walau bagaimanapun, cabaran timbul apabila bekerja dengan tupel dan nilai berkod keras.
Alternatif kepada Penggabungan Rentetan
Satu penyelesaian yang dicadangkan melibatkan penggabungan rentetan, tetapi ketidakcekapannya untuk jadual besar meningkat. kebimbangan.
SQL-92 Standard yang Sah Sintaks
Pendekatan yang lebih cekap terletak pada penggunaan tweak sintaks kecil dalam sintaks Standard SQL-92:
SELECT * FROM mytable WHERE (group_id, group_type) IN ( VALUES ('1234-567', 2), ('4321-765', 3), ('1111-222', 5) );
Sintaks ini sah dalam banyak produk SQL yang popular, termasuk PostgreSQL dan SQLite. Walau bagaimanapun, SQL Server 2022 pada masa ini tidak menyokongnya.
Kesimpulan
Dengan menggantikan petikan berganda dengan tunggal dan menambah kata kunci VALUES, anda boleh memanfaatkan sintaks yang lebih cekap untuk menanyakan tupel dengan nilai berkod keras dalam klausa "IN" SQL. Pendekatan ini menangani kelemahan penggabungan rentetan dan menyediakan penyelesaian yang lebih berskala untuk jadual besar.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Tuple dengan Cekap dalam Klausa 'IN' SQL dengan Nilai Berkod Keras?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!