解決MySQL 中的「Illegal Mix of Collations」錯誤
當在MySQL 中遇到「Illegal mix of collat ion”錯誤時,通常表示比較或組合字串時排序規則不相容。當不同字元集和排序規則的資料混合時會出現這種情況,從而導致錯誤。
要解決此問題,需要為正在比較或選擇的欄位指定共用排序規則。這可以使用 COLLATE 子句來實現,該子句允許您指定要在查詢中使用的排序規則。
例如,要解決給定場景中的錯誤,您可以使用以下查詢:
SELECT * FROM table ORDER BY key COLLATE latin1_general_ci;
此查詢確保鍵列使用latin1_general_ci 排序規則進行排序,與table.
另一個選項是使用BINARY 運算符,它在比較之前將字串轉換為二進位格式。這是CAST(str AS BINARY) 的簡寫,可以如下使用:
SELECT * FROM table WHERE BINARY a = BINARY b;
透過將值轉換為二進制,排序規則中的任何差異都將被忽略,從而可以進行正確的比較。
需要注意的是,將值轉換為二進位可能會導致忽略這些欄位上的任何索引。欲了解更多詳細信息,請參閱eggyal對此特定問題提供的強烈推薦答案。
以上是如何修復 MySQL「非法混合排序規則」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!