mysql 按中文字段排序
更新時(shí)間:2009年01月07日 02:18:49 作者:
在MySQL中,進(jìn)行中文排序和查找的時(shí)候,對(duì)漢字的排序和查找結(jié)果是錯(cuò)誤的。 這種情況在MySQL的很多版本中都存在。
如果這個(gè)問(wèn)題不解決,那么MySQL將無(wú)法實(shí)際處理中文。 出現(xiàn)這個(gè)問(wèn)題的原因是因?yàn)镸ySQL在查詢字符串時(shí)是大小寫不敏感的,在編繹MySQL時(shí)一般以ISO-8859字符集作為默認(rèn)的字符集,因此在比較過(guò)程中中文編碼字符大小寫轉(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 來(lái)加入多個(gè)字符集。
如果不想對(duì)表結(jié)構(gòu)進(jìn)行修改或者重新編譯MySQL,也可以在查詢語(yǔ)句的 order by 部分使用 CONVERT 函數(shù)。比如 select * from mytable order by CONVERT(chineseColumnName USING gbk);
解決方法:
對(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 來(lái)加入多個(gè)字符集。
如果不想對(duì)表結(jié)構(gòu)進(jìn)行修改或者重新編譯MySQL,也可以在查詢語(yǔ)句的 order by 部分使用 CONVERT 函數(shù)。比如 select * from mytable order by CONVERT(chineseColumnName USING gbk);
相關(guān)文章
Mysql添加聯(lián)合唯一索引及相同數(shù)據(jù)插入報(bào)錯(cuò)問(wèn)題
這篇文章主要介紹了Mysql添加聯(lián)合唯一索引及相同數(shù)據(jù)插入報(bào)錯(cuò)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09
gearman + mysql方式實(shí)現(xiàn)持久化操作示例
這篇文章主要介紹了gearman + mysql方式實(shí)現(xiàn)持久化操作,簡(jiǎn)單描述了持久化的概念、原理,并結(jié)合實(shí)例形式分析了gearman + mysql持久化操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2020-02-02
MySQL數(shù)據(jù)庫(kù)中varchar類型的數(shù)字比較大小的方法
varchar類型的數(shù)據(jù)是不能直接比較大小的,那么MySQL數(shù)據(jù)庫(kù)中varchar類型如何進(jìn)行數(shù)字比較大小的,本文就詳細(xì)的介紹一下2021-11-11
MySQL?讀寫分離的實(shí)現(xiàn)邏輯及步驟詳解
文章介紹了MySQL讀寫分離的架構(gòu)、實(shí)現(xiàn)步驟、可能遇到的問(wèn)題及解決方案,并總結(jié)了優(yōu)化點(diǎn),以提高M(jìn)ySQL數(shù)據(jù)庫(kù)的性能和可擴(kuò)展性,感興趣的朋友一起看看吧2025-02-02
MySQL slow_log表無(wú)法修改成innodb引擎詳解
這篇文章主要給大家介紹了關(guān)于MySQL slow_log表無(wú)法修改成innodb引擎的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用MySQL具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
MySQL設(shè)置用戶權(quán)限的簡(jiǎn)單步驟
這篇文章主要給大家介紹了關(guān)于MySQL設(shè)置用戶權(quán)限的簡(jiǎn)單步驟,學(xué)習(xí)MySQL數(shù)據(jù)庫(kù),MySQL用戶權(quán)限設(shè)置是需要首先學(xué)習(xí)的,需要的朋友可以參考下2023-07-07
mysql存儲(chǔ)過(guò)程之返回多個(gè)值的方法示例
這篇文章主要介紹了mysql存儲(chǔ)過(guò)程之返回多個(gè)值的方法,結(jié)合實(shí)例形式分析了mysql存儲(chǔ)過(guò)程返回多個(gè)值的實(shí)現(xiàn)方法與PHP調(diào)用技巧,需要的朋友可以參考下2019-12-12

