首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 中文排序錯誤兩大解決方案

     編輯:MySQL 資料庫相關知識

問題現象

MySQL 多版本存在中文排序/查找錯誤,導致無法正確處理中文資料。根因:MySQL 編譯預設使用 ISO-8859 字符集,查詢時大小寫不敏感比較導致中文編碼字節被錯誤轉換。

方案一:欄位加 BINARY 屬性(快速修復)

-- 原結構
name CHAR(10)

-- 修改為
name CHAR(10) BINARY

效果:該欄位改為二進制比較,按字節值排序/查找,繞過字符集轉換邏輯。

方案二:編譯時指定字符集(根治)

./configure --with-charset=gbk ...

從原始碼編譯 MySQL 時加入此參數,使服務器原生支援 GBK 中文排序規則。

補充說明

  • 方案一適合無法重新編譯的生產環境,僅影響特定欄位
  • 方案二需重新編譯安裝,適合自建部署流程的團隊
  • 現代版本(5.5+)建議使用 utf8mb4 + utf8mb4_unicode_ci,原生支援正確中文排序
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved