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>
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>
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!