Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menyelesaikan Ralat 'Campuran pengumpulan haram' MySQL?

Bagaimana untuk Menyelesaikan Ralat 'Campuran pengumpulan haram' MySQL?

DDD
DDDasal
2024-12-22 13:37:17604semak imbas

How to Solve MySQL's

Menyelesaikan masalah Ralat "Campuran pengumpulan yang tidak sah" dalam MySQL

Apabila menghadapi ralat "Campuran pengumpulan yang tidak sah" dalam MySQL semasa pelaksanaan prosedur tersimpan , adalah bijak untuk menyelidiki punca asas.

Pengumpulan memainkan peranan penting dalam MySQL, menentukan set aksara dan peraturan pengisihan. Ketidakpadanan dalam himpunan antara jadual dan lajur yang dirujuk dalam klausa WHERE boleh membawa kepada ralat ini.

Untuk menyelesaikan isu, nyatakan himpunan dikongsi untuk kedua-dua lajur yang terlibat dalam perbandingan. Klausa COLLATE membenarkan anda untuk mengatasi penyusunan lalai untuk ungkapan tertentu. Contohnya:

WHERE 'A' COLLATE latin1_general_ci = 'A' COLLATE latin1_general_cs

Pertanyaan ini masih akan mencetuskan ralat kerana ia membandingkan rentetan dengan pengumpulan yang berbeza. Sebaliknya, anda harus menyatakan pengumpulan kongsi secara eksplisit:

SELECT * FROM table ORDER BY key COLLATE latin1_general_ci;

Sebagai alternatif, pengendali BINARI boleh digunakan untuk memaksa perbandingan binari, mengabaikan pengumpulan:

SELECT * FROM table WHERE BINARY a = BINARY b;
SELECT * FROM table ORDER BY BINARY a;

Berhati-hati bahawa pemutus lajur untuk perbandingan, seperti dalam kes pengendali BINARI, boleh memberi kesan kepada prestasi pengindeksan. Rujuk jawapan komprehensif eggyal untuk mendapatkan maklumat lanjut tentang pengumpulan MySQL.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat 'Campuran pengumpulan haram' 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