解決MySQL 中的「非法混合排序規則」錯誤
當嘗試執行涉及SELECT 語句的MySQL 儲存過程時,您可以遭遇到錯誤“非法混合排序規則”。出現此問題的原因是表格和要比較或排序的欄位的排序規則有差異。
表格的排序規則為 latin1_general_ci,而 WHERE 子句中的欄位使用 latin1_general_cs。這些不相容的排序規則會導致錯誤。
解決方案1:使用COLLATE 子句指定共享排序規則
使用COLLATE 子句為列中的列指定通用排序規則查詢:
WHERE column1 COLLATE latin1_general_ci = column2 COLLATE latin1_general_ci
解決方案2:使用BINARY運算符
或者,您可以使用BINARY 運算符,它將字符串視為二進制數據:
WHERE BINARY column1 = BINARY column2
注意:
使用BINARY 運算子時,請記住,它會停用該列上的任何潛在索引問題。
有關整理相關主題的全面信息,請參閱 Eggyal 在類似討論中提供的極具洞察力的回复。
以上是如何修復 MySQL 中的「非法混合排序規則」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!