
前言在MySQL中我們經常會對一個字段進行排序查詢但進行中文排序和查找的時候對漢字的排序和查找結果往往都是錯誤的。 這種情況在MySQL的很多版本中都存在。如果這個問題不解決那么MySQL將無法實際處理中文。 出現這個問題的原因是因為MySQL在查詢字符串時是大小寫不敏感的在編繹MySQL時一般以ISO-8859字符集作為默認的字符集因此在比較過程中中文編碼字符大小寫轉換造成了這種現象。表結構修改對于包含中文的字段加上binary屬性使之作為二進制比較例如將name char(10)改成name char(10) binary。源碼編譯編譯MySQL時使用–with–charsetgbk參數這樣MySQL就會直接支持中文查找和排序了默認的是latin1。也可以用extra-charsetsgb2312,gbk來加入多個字符集。查詢語句使用CONVERT函數UTF8默認校對集是utf8_general_ci, 它不是按照中文來的。你需要強制讓MySQL按中文來排序。SELECT * FROM student ORDER BY CONVERT(name USING gbk);