Masalah dengan Ralat "Campuran Pengumpulan Tidak Sah" dalam MySql
Menghadapi ralat "Campuran tidak sah pengumpulan" semasa melaksanakan pertanyaan boleh mengecewakan. Untuk menyelesaikan isu ini, ikut langkah berikut:
Semak Pengumpulan
Mula-mula, kenal pasti lajur dengan pengumpulan yang tidak serasi. Jalankan 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;
Betulkan Ketidakkonsistenan Pengumpulan
Setelah anda mengenal pasti lajur yang menyinggung perasaan, laraskan pengumpulannya agar sepadan dengan pengumpulan yang diperlukan menggunakan pertanyaan berikut:
ALTER TABLE tbl_name CONVERT TO CHARACTER SET latin1 COLLATE 'latin1_swedish_ci';
Gantikan "tbl_name" dengan nama jadual dengan ketidakkonsistenan pengumpulan.
Contoh
Menggunakan langkah-langkah ini pada contoh pertanyaan disediakan akan menyelesaikan masalah:
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
Awas
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat \'Campuran Pengumpulan Tidak Sah\' dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!