Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Membetulkan Ralat \'Campuran Pengumpulan Tidak Sah\' dalam MySQL?

Bagaimanakah Saya Membetulkan Ralat \'Campuran Pengumpulan Tidak Sah\' dalam MySQL?

Patricia Arquette
Patricia Arquetteasal
2024-11-04 02:08:02452semak imbas

How Do I Fix the

Ralat Pengumpulan Tidak Sah dalam MySQL: Menyelesaikan Campuran Pengumpulan

Ralat "Campuran Pengumpulan Tidak Sah" dalam MySQL timbul apabila membandingkan nilai dengan set watak atau himpunan yang berbeza. Mari analisa isu ini dalam konteks pertanyaan anda:

<code class="sql">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</code>

Setelah menambahkan baris berikut pada pertanyaan anda:

<code class="sql">AND username IN (SELECT username FROM users WHERE gender =1)</code>

anda mengalami ralat "Campuran tidak sah pengumpulan". Ini kerana lajur nama pengguna dalam jadual penilaian mungkin mempunyai pengumpulan yang berbeza daripada lajur nama pengguna dalam jadual pengguna.

Mengenal pasti Pengumpulan yang Salah:

Untuk menentukan yang mana lajur menyebabkan konflik pengumpulan, gunakan 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 jadual dan lajur yang mempunyai collation latin1_general_ci.

Menyelesaikan Isu:

Untuk menyelesaikan ralat, tukar jadual dengan pengumpulan yang salah kepada pengumpulan yang diperlukan, yang biasanya latin1_swedish_ci. Gunakan pertanyaan berikut:

<code class="sql">ALTER TABLE tbl_name CONVERT TO CHARACTER SET latin1 COLLATE 'latin1_swedish_ci';</code>

dengan tbl_name ialah nama jadual dengan penyusunan yang salah.

Dengan menyelesaikan konflik penyusunan, pertanyaan yang diubah suai harus dilaksanakan dengan jayanya.

Atas ialah kandungan terperinci Bagaimanakah Saya Membetulkan Ralat \'Campuran Pengumpulan Tidak Sah\' dalam 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