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

Bagaimana untuk Menyelesaikan Ralat 'Campuran pengumpulan haram' MySQL?

DDD
Lepaskan: 2024-12-22 13:37:17
asal
681 orang telah melayarinya

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
Salin selepas log masuk

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;
Salin selepas log masuk

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

SELECT * FROM table WHERE BINARY a = BINARY b;
Salin selepas log masuk
SELECT * FROM table ORDER BY BINARY a;
Salin selepas log masuk

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 Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan