首頁  >  文章  >  資料庫  >  如何修復 MySQL 中的「非法混合排序規則」錯誤?

如何修復 MySQL 中的「非法混合排序規則」錯誤?

Patricia Arquette
Patricia Arquette原創
2024-11-04 02:08:02423瀏覽

How Do I Fix the

MySQL 中的非法排序規則錯誤:解決排序規則混合

將值與不同的字元集或排序規則。讓我們在查詢的上下文中分析此問題:

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

將以下行加入查詢時:

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

您遇到了「非法混合排序規則」錯誤。這是因為評級表中的使用者名列可能與使用者表中的使用者名列有不同的排序規則。

識別不正確的排序規則:

確定哪個列導致排序規則衝突,請使用以下查詢:

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

此查詢將顯示具有排序規則latin1_general_ci 的表格和欄位。

解決問題:

要解決該錯誤,請將排序規則不正確的表轉換為所需的排序規則,通常為 latin1_swedish_ci。使用以下查詢:

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

其中 tbl_name 是排序規則不正確的表的名稱。

透過解決排序規則衝突,修改後的查詢應該會成功執行。

以上是如何修復 MySQL 中的「非法混合排序規則」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn