Rumah > Artikel > pangkalan data > Bagaimana untuk Membetulkan Ralat \"Campuran Haram Pengumpulan\" dalam MySQL?
Campuran Pengumpulan Haram dalam MySQL: Panduan Terperinci untuk Penyelesaian
Semasa mengerjakan pertanyaan yang melibatkan berbilang jadual, anda mungkin menghadapi ralat "Campuran pengumpulan haram." Isu ini timbul apabila set aksara dan himpunan yang digunakan dalam jadual dan lajur yang terlibat dalam pertanyaan tidak sepadan.
Untuk menyelesaikan ralat ini, anda perlu mengenal pasti lajur tertentu yang menyebabkan ketidakpadanan dan mengubah suai himpunan mereka agar sepadan selebihnya meja. Berikut ialah panduan langkah demi langkah:
Mengenal pasti Lajur Tidak Padan:
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;
Pertanyaan ini akan mengenal pasti semua lajur dalam pangkalan data anda yang menggunakan pengumpulan 'latin1_general_ci'.
Menukar Pengumpulan:
Sebaik sahaja anda mempunyai mengenal pasti lajur yang tidak padan, anda boleh menukar pengumpulannya untuk memadankan jadual yang lain menggunakan arahan ALTER TABLE. Contohnya, untuk menukar lajur 'nama pengguna' dalam jadual 'pengguna' kepada 'latin1_swedish_ci', gunakan arahan berikut:
ALTER TABLE users CONVERT TO CHARACTER SET latin1 COLLATE 'latin1_swedish_ci';
Nota: Set aksara dan himpunan bagi lajur kunci utama mesti sepadan dengan lajur kunci asing dalam jadual berkaitan untuk mengelakkan ralat penyusunan.
Contoh Pertanyaan:
Berikut ialah versi semakan semula pertanyaan asal anda dengan isu pengumpulan telah diselesaikan:
SELECT username, (SUM(rating)/COUNT(*)) as TheAverage, Count(*) as TheCount FROM ratings WHERE month='Aug' AND username IN (SELECT username FROM users WHERE gender=1) GROUP BY username HAVING TheCount > 4 ORDER BY TheAverage DESC, TheCount DESC;
Dengan mengikuti langkah-langkah ini, anda boleh menyelesaikan ralat "Campuran pengumpulan yang tidak sah" dan memastikan pertanyaan anda beroperasi dengan betul dengan set aksara dan himpunan yang konsisten.
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat \"Campuran Haram Pengumpulan\" dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!