中文欄位 ORDER BY 排序錯誤,原因:預設 latin1 字元集下,中文編碼位元比較不符合語義排序。
ALTER TABLE t MODIFY name CHAR(10) BINARY;
-- 或建表時
CREATE TABLE t (name CHAR(10) BINARY);
./configure --with-charset=gbk --with-extra-charsets="gbk gb2312 big5 utf8" ...
CREATE TABLE t (name VARCHAR(50) CHARACTER SET gbk COLLATE gbk_chinese_ci);CHARACTER SET utf8 COLLATE utf8_unicode_ci (支援多語言、排序更精準)SET NAMES gbk; SET SESSION collation_connection = gbk_chinese_ci;