Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Membetulkan Ralat 'Campuran pengumpulan yang tidak sah' dalam MySQL?
Menyelesaikan Ralat "Campuran haram" dalam MySQL
Apabila cuba untuk melaksanakan prosedur tersimpan MySQL yang melibatkan pernyataan SELECT, anda boleh menghadapi ralat "Campuran pengumpulan yang tidak sah." Isu ini timbul disebabkan oleh percanggahan dalam pengumpulan jadual dan lajur dibandingkan atau diisih.
Pengumpulan jadual ialah latin1_general_ci, manakala lajur dalam klausa WHERE menggunakan latin1_general_cs. Pengumpulan yang tidak serasi ini mengakibatkan ralat.
Penyelesaian 1: Tentukan Pengumpulan Dikongsi menggunakan Klausa COLLATE
Gunakan klausa COLLATE untuk menentukan himpunan biasa bagi lajur dalam pertanyaan:
WHERE column1 COLLATE latin1_general_ci = column2 COLLATE latin1_general_ci
Penyelesaian 2: Guna Operator BINARI
Sebagai alternatif, anda boleh menggunakan operator BINARI, yang menganggap rentetan sebagai data binari:
WHERE BINARY column1 = BINARY column2
Nota:
Apabila menggunakan operator BINARY, perlu diingat bahawa ia melumpuhkan sebarang potensi pengindeksan pada lajur dalam soalan.
Untuk mendapatkan maklumat menyeluruh tentang topik yang berkaitan dengan pengumpulan, rujuk respons yang sangat bernas yang diberikan oleh eggyal dalam perbincangan yang serupa.
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat 'Campuran pengumpulan yang tidak sah' dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!