Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Menyelesaikan Ralat \"Campuran Pengumpulan Tidak Sah\" dalam Pertanyaan MySQL?

Bagaimana untuk Menyelesaikan Ralat \"Campuran Pengumpulan Tidak Sah\" dalam Pertanyaan MySQL?

Patricia Arquette
Patricia Arquetteasal
2024-11-03 23:59:301051semak imbas

How to Resolve

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!

Kenyataan:
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