Menyelesaikan masalah "Illegal Mix of Collations" Ralat dalam MySQL
Apabila menghadapi ralat "Illegal mix of collations" dalam MySQL, ia sering menunjukkan ketidakserasian dalam himpunan apabila membandingkan atau menggabungkan rentetan. Ini berlaku apabila data dengan set aksara yang berbeza dan peraturan pengumpulan bercampur, mengakibatkan ralat.
Untuk menyelesaikan isu ini, adalah perlu untuk menentukan pengumpulan dikongsi untuk lajur yang dibandingkan atau dipilih. Ini boleh dicapai menggunakan klausa COLLATE, yang membolehkan anda menentukan himpunan untuk digunakan dalam pertanyaan.
Sebagai contoh, untuk menyelesaikan ralat dalam senario yang diberikan, anda boleh menggunakan pertanyaan berikut:
SELECT * FROM table ORDER BY key COLLATE latin1_general_ci;
Pertanyaan ini memastikan bahawa lajur kunci diisih menggunakan himpunan latin1_general_ci, sepadan dengan pengumpulan jadual.
Pilihan lain ialah menggunakan operator BINARI, yang menghantar rentetan kepada format binari sebelum perbandingan. Ini ialah singkatan untuk CAST(str AS BINARY) dan boleh digunakan seperti berikut:
SELECT * FROM table WHERE BINARY a = BINARY b;
Dengan menghantar nilai kepada binari, sebarang perbezaan dalam peraturan pengumpulan diabaikan, membenarkan perbandingan yang betul.
Adalah penting untuk ambil perhatian bahawa menghantar nilai ke binari mungkin mengakibatkan pengabaian mana-mana indeks pada lajur tersebut. Untuk mendapatkan maklumat yang lebih terperinci, rujuk jawapan yang sangat disyorkan yang disediakan oleh eggyal untuk isu khusus ini.
Atas ialah kandungan terperinci Bagaimanakah Saya Membetulkan Ralat 'Campuran Pengumpulan Haram' MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!