Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Menyelesaikan Ralat Campuran Haram Pengumpulan MySQL (latin1_swedish_ci dan utf8_general_ci)?

Bagaimana untuk Menyelesaikan Ralat Campuran Haram Pengumpulan MySQL (latin1_swedish_ci dan utf8_general_ci)?

Susan Sarandon
Lepaskan: 2025-01-10 19:51:43
asal
483 orang telah melayarinya

How to Solve MySQL's Illegal Mix of Collations Error (latin1_swedish_ci and utf8_general_ci)?

Perincian dan penyelesaian ralat konflik set aksara MySQL

Apabila memproses sejumlah besar data, anda mungkin menghadapi ralat berikut dalam MySQL:

<code>错误号:1267

操作“=”的字符集校对(latin1_swedish_ci,隐式)和(utf8_general_ci,可强制)不匹配</code>
Salin selepas log masuk

Ralat ini berlaku apabila MySQL cuba membandingkan data dengan himpunan set aksara yang berbeza, mengakibatkan ketidakserasian. Dalam kes ini, ralat berlaku semasa pertanyaan yang membandingkan lajur "kata kunci" (dengan andaian penyusunan dengan "latin1_swedish_ci") kepada rentetan literal yang mungkin disusun dengan "utf8_general_ci".

Selesaikan konflik set watak

Untuk membetulkan ralat ini, anda boleh mencuba beberapa perkara:

  1. Tetapkan pengumpulan sambungan: Jalankan pertanyaan berikut untuk menetapkan pengumpulan sambungan kepada "utf8_general_ci":
<code>SET collation_connection = 'utf8_general_ci';</code>
Salin selepas log masuk
  1. Ubah suai pengekodan pangkalan data dan jadual: Tukar set aksara dan himpunan pangkalan data dan jadual yang terjejas:
<code>ALTER DATABASE your_database_name CHARACTER SET utf8 COLLATE utf8_general_ci;

ALTER TABLE your_table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;</code>
Salin selepas log masuk
  1. Escape rentetan: Dalam sesetengah kes, anda boleh cuba melarikan diri rentetan literal untuk memastikan ia menggunakan pengumpulan yang betul. Sebagai contoh, anda boleh cuba melampirkan rentetan dalam petikan tunggal (') atau petikan berganda (") untuk memaksa penyusunan gabungan.

Nota lain

MySQL kadangkala memperkenalkan himpunan "latin1_swedish_ci" tanpa sebab yang jelas. Untuk mengelakkan masalah ini pada masa hadapan, tentukan set aksara dan himpunan secara eksplisit untuk semua objek pangkalan data, termasuk jadual, lajur dan prosedur tersimpan. Anda boleh menghalang ralat seperti ini daripada berlaku dengan memastikan semua data dikumpul secara konsisten.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat Campuran Haram Pengumpulan MySQL (latin1_swedish_ci dan utf8_general_ci)?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan