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

MySQL 中文欄位排序問題的三種解決方案

     編輯:MySQL 資料庫相關知識

MySQL 在查詢字串時預設大小寫不敏感,編譯時通常以 ISO-8859 字元集為預設,導致中文編碼在比較過程中發生大小寫轉換,造成排序錯誤。以下提供三種解決方式:

方法一:欄位加上 BINARY 屬性

將包含中文的欄位設為二進位比較,例如將 name CHAR(10) 改為 name CHAR(10) BINARY。

方法二:編譯 MySQL 時指定字元集

若使用原始碼編譯,可加入 --with-charset=gbk 參數,使 MySQL 直接支援中文查詢與排序(預設為 latin1)。亦可用 extra-charsets=gb2312,gbk 加入多組字元集。

方法三:查詢語句中使用 CONVERT 函數

不想修改表結構或重新編譯時,可在 ORDER BY 子句使用 CONVERT:

SELECT * FROM mytable ORDER BY CONVERT(chineseColumnName USING gbk);
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved