《Mysql學(xué)習(xí)讓MySQL支持中文排序的實(shí)現(xiàn)方法》要點(diǎn):
本文介紹了Mysql學(xué)習(xí)讓MySQL支持中文排序的實(shí)現(xiàn)方法,希望對(duì)您有用。如果有疑問,可以聯(lián)系我們。
讓MySQL支持中文排序
編繹MySQL時(shí)一般以ISO-8859字符集作為默認(rèn)的字符集,因此在比較過程中中文編碼字符大小寫轉(zhuǎn)換造成了這種現(xiàn)象,一種解決方法是對(duì)于包含中文的字段加上"binary"屬性,使之作為二進(jìn)制比較,
例如將"name char(10)"改成"name char(10)binary".
編譯MySQL時(shí)使用--with--charset=gbk 參數(shù),這樣MySQL就會(huì)直接支持中文查找和排序了.
mysql order by 中文 排序
在MySQL中,我們經(jīng)常會(huì)對(duì)一個(gè)字段進(jìn)行排序查詢,但進(jìn)行中文排序和查找的時(shí)候,對(duì)漢字的排序和查找結(jié)果往往都是錯(cuò)誤的. 這種情況在MySQL的很多版本中都存在.
如果這個(gè)問題不解決,那么MySQL將無法實(shí)際處理中文. 出現(xiàn)這個(gè)問題的原因是因?yàn)镸ySQL在查詢字符串時(shí)是大小寫不敏感的,在編繹MySQL時(shí)一般以ISO-8859字符集作為默認(rèn)的字符集,因此在比較過程中中文編碼字符大小寫轉(zhuǎn)換造成了這種現(xiàn)象.
解決方法:
對(duì)于包含中文的字段加上"binary"屬性,使之作為二進(jìn)制比較,例如將"name char(10)"改成"name char(10)binary".
如果你使用源碼編譯MySQL,可以編譯MySQL時(shí)使用 --with--charset=gbk 參數(shù),這樣MySQL就會(huì)直接支持中文查找和排序了(默認(rèn)的是latin1).也可以用 extra-charsets=gb2312,gbk 來加入多個(gè)字符集.
如果不想對(duì)表結(jié)構(gòu)進(jìn)行修改或者重新編譯MySQL,也可以在查詢語句的 order by 部分使用 CONVERT 函數(shù).比如 select * from mytable order by CONVERT(chineseColumnName USING gbk);
UTF8 默認(rèn)校對(duì)集是 utf8_general_ci , 它不是按照中文來的.你需要強(qiáng)制讓MySQL按中文來排序.
select * from core_vender_info order by convert(vender_abbrev USING gbk) COLLATE gbk_chinese_ci
維易PHP培訓(xùn)學(xué)院每天發(fā)布《Mysql學(xué)習(xí)讓MySQL支持中文排序的實(shí)現(xiàn)方法》等實(shí)戰(zhàn)技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養(yǎng)人才。
轉(zhuǎn)載請(qǐng)注明本頁網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/12011.html