Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Membetulkan Ralat 'Campuran pengumpulan yang tidak sah' dalam MySQL?

Bagaimana untuk Membetulkan Ralat 'Campuran pengumpulan yang tidak sah' dalam MySQL?

Susan Sarandon
Susan Sarandonasal
2024-12-13 06:14:13904semak imbas

How to Fix the

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!

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