Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengelakkan ORA-01795: Alternatif kepada Klausa Berbilang IN?
Pendekatan Alternatif untuk Mengendalikan "ORA-01795: Ungkapan Maksimum dalam Ralat Senarai"
Apabila menghadapi "ORA-01795: nombor maksimum ungkapan dalam senarai adalah 1000 ralat," nasihat standard adalah untuk mengubah suai pertanyaan dan memasukkan berbilang klausa IN seperti yang dilihat dalam jawapan. Walau bagaimanapun, mari kita teroka kaedah alternatif lain untuk mengatasi had ini.
Satu alternatif ialah menggunakan jadual sementara, seperti yang dilihat dalam pertanyaan berikut:
CREATE TABLE temp_table AS SELECT DISTINCT name FROM table1 WHERE name IN ('value1', 'value2', ..., 'value10000+'); SELECT field1, field2, field3 FROM table1 WHERE name IN (SELECT name FROM temp_table); DROP TABLE temp_table;
Kaedah ini mempunyai kelebihan membenarkan keseluruhan set nilai digunakan dalam satu klausa IN, tanpa perlu membahagikannya kepada beberapa klausa. Selain itu, ia boleh diguna semula, kerana jadual sementara boleh disimpan untuk pertanyaan pada masa hadapan.
Walaupun kedua-dua pendekatan berkesan dalam menyelesaikan ralat "ORA-01795", pilihan di antara mereka bergantung pada keperluan dan kekangan khusus bagi persekitaran pangkalan data.
Atas ialah kandungan terperinci Bagaimana untuk Mengelakkan ORA-01795: Alternatif kepada Klausa Berbilang IN?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!