Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menyelesaikan Ralat \'Campuran Haram Pengumpulan\' dalam MySQL?

Bagaimana untuk Menyelesaikan Ralat \'Campuran Haram Pengumpulan\' dalam MySQL?

Linda Hamilton
Linda Hamiltonasal
2024-11-17 06:44:03820semak imbas

How to Resolve

Campuran Pengumpulan dalam MySQL

Dalam MySQL, ralat mungkin berlaku apabila cuba membandingkan atau mengendalikan nilai dengan pengumpulan yang berbeza. Contoh biasa ialah "Campuran tidak sah pengumpulan (utf8_unicode_ci,IMPLICIT) dan (utf8_general_ci,IMPLICIT) untuk operasi '='".

Memahami Pengumpulan

Satu pengumpulan menentukan cara aksara diisih dan dibandingkan. MySQL menyokong pelbagai pengumpulan, dengan utf8_unicode_ci dan utf8_general_ci menjadi pilihan biasa.

Ralat Pengumpulan

Ralat berlaku apabila operasi cuba membandingkan atau memanipulasi nilai dengan pengumpulan yang berbeza. Ini boleh berlaku disebabkan oleh ketidakkonsistenan dalam tetapan pengumpulan jadual, medan atau prosedur tersimpan.

Menyelesaikan Isu

Untuk menyelesaikan isu ini, terdapat empat pilihan utama :

Pilihan 1: Tentukan Pengumpulan untuk Pembolehubah

  • Tambah kata kunci COLLATE pada pembolehubah input, seperti SET @rUsername = 'aname' COLLATE utf8_unicode_ci; .

Pilihan 2: Tentukan Pengumpulan dalam Klausa WHERE

  • Tambah kata kunci COLLATE pada klausa WHERE, seperti WHERE users.username = rUsername COLLATE utf8_unicode_ci.

Pilihan 3: Tentukan Pengumpulan dalam Parameter Prosedur Tersimpan

  • Tambah kata kunci COLLATE pada definisi parameter IN dalam prosedur tersimpan , seperti IN rUsername VARCHAR(24) COLLATE utf8_unicode_ci.

Pilihan 4: Ubah Pengumpulan Jadual

  • Ubah pengumpulan medan yang dimaksudkan , seperti ALTER TABLE users CHARACTER SET utf8 COLLATE utf8_general_ci;.

Recommendation

Adalah disyorkan untuk menggunakan utf8mb4/utf8mb4_unicode_ci set kaedah, kerana ia menyediakan sokongan paling komprehensif untuk aksara Unicode.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat \'Campuran Haram Pengumpulan\' 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