Rumah > Artikel > pangkalan data > Bagaimana untuk Menyelesaikan Ralat \"Campuran Pengumpulan Tidak Sah\" dalam Pertanyaan MySQL?
Resolusi Pengisihan Aksara Haram dalam MySql dengan Ralat Penyusunan
Dalam cuba menggabungkan dua subkueri dalam pertanyaan SQL, anda mungkin menghadapi "Haram ralat gabungan pengumpulan". Ini timbul apabila lajur yang terlibat dalam perbandingan atau operasi mempunyai set aksara atau tetapan penyusunan yang berbeza.
Untuk menyelesaikan ralat ini, adalah perlu untuk memastikan bahawa lajur yang digunakan dalam pertanyaan mempunyai pengumpulan yang sama. Untuk menentukan lajur yang terjejas, rujuk pertanyaan berikut:
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;
Ini akan memaparkan lajur dengan pengumpulan 'latin1_general_ci'. Untuk menyelesaikan ralat, tukar lajur bercanggah kepada pengumpulan 'latin1_swedish_ci' menggunakan pertanyaan ini:
ALTER TABLE tbl_name CONVERT TO CHARACTER SET latin1 COLLATE 'latin1_swedish_ci';
Dengan membetulkan ketidakpadanan pengumpulan, pertanyaan boleh dilaksanakan dengan jayanya:
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
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat \"Campuran Pengumpulan Tidak Sah\" dalam Pertanyaan MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!