Rumah > pangkalan data > tutorial mysql > Mengapa Saya Mendapat Ralat \'Campuran Pengumpulan Tidak Sah\' dalam MySQL?

Mengapa Saya Mendapat Ralat \'Campuran Pengumpulan Tidak Sah\' dalam MySQL?

Patricia Arquette
Lepaskan: 2024-11-04 11:29:30
asal
942 orang telah melayarinya

Why Am I Getting an

Ralat "Campuran Haram Pengumpulan" dalam MySQL: Memahami Punca dan Penyelesaian

Apabila bekerja dengan pangkalan data, adalah penting untuk memastikan konsistensi dalam pengekodan data, biasanya dikenali sebagai pengumpulan. MySQL, sistem pengurusan pangkalan data yang popular, boleh menghadapi ralat "Campuran pengumpulan yang tidak sah" apabila membandingkan nilai dengan pengumpulan yang berbeza. Ralat ini biasanya berlaku apabila menanyakan lajur atau jadual yang menggunakan set aksara atau himpunan yang tidak serasi.

Dalam senario yang disediakan, pertanyaan asal yang melibatkan pengagregatan dan penapisan pada lajur "nama pengguna" mengembalikan hasil yang memuaskan. Walau bagaimanapun, menambah syarat untuk menapis nama pengguna berdasarkan jadual lain, "pengguna," mengakibatkan ralat "Campuran pengumpulan yang tidak sah". Ralat ini menunjukkan bahawa lajur "nama pengguna" dalam jadual "penilaian" dan "pengguna" mempunyai penyusunan yang berbeza, menghalang perbandingannya.

Untuk menyelesaikan isu ini, adalah penting untuk menyemak lajur yang mempunyai pengumpulan yang salah. Ini boleh dicapai dengan melaksanakan pertanyaan berikut:

<code class="sql">SELECT table_schema, table_name, column_name, character_set_name, collation_name
FROM information_schema.columns
WHERE collation_name = 'latin1_general_ci'
ORDER BY table_schema, table_name, ordinal_position;</code>
Salin selepas log masuk

Pertanyaan ini akan memaparkan lajur dengan penyusunan yang ditentukan ('latin1_general_ci'), membolehkan anda mengenal pasti jadual dan lajur yang memerlukan pembetulan.

Setelah lajur yang terjejas dikenal pasti, anda boleh menukarnya kepada penyusunan seragam, biasanya menggunakan arahan penukaran jadual:

<code class="sql">ALTER TABLE tbl_name CONVERT TO CHARACTER SET latin1 COLLATE 'latin1_swedish_ci';</code>
Salin selepas log masuk

Menggantikan 'tbl_name' dengan nama jadual yang terjejas dan memastikan penyusunan yang ditentukan sepadan pengumpulan yang dikehendaki akan menyelesaikan ralat. Dengan menukar lajur kepada penyusunan yang konsisten, MySQL boleh membandingkan dan memproses data dengan berkesan seperti yang dijangkakan.

Ringkasnya, ralat "Campuran pengumpulan yang tidak sah" dalam MySQL timbul disebabkan penyusunan yang tidak serasi antara lajur atau jadual, menghalang perbandingan nilai yang betul. Untuk menyelesaikan isu ini, adalah penting untuk mengenal pasti dan menukar lajur yang terjejas kepada pengumpulan yang konsisten, memastikan manipulasi data yang lancar dan pelaksanaan pertanyaan dalam pangkalan data MySQL anda.

Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat \'Campuran Pengumpulan Tidak Sah\' dalam MySQL?. 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