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í)是大小寫(xiě)不敏感的,在編繹MySQL時(shí)一般以ISO-8859字符集作為默認(rèn)的字符集,因此在比較過(guò)程中中文編碼字符大小寫(xiě)轉(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數(shù)據(jù)庫(kù)命名規(guī)范及約定
這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)的操作規(guī)范及、表名約定、列名約定,需要的朋友可以參考下2014-03-03Mysql縱表轉(zhuǎn)換為橫表的方法及優(yōu)化教程
在應(yīng)用中為了從不同的視圖去分析數(shù)據(jù),會(huì)使用不同的方案去查詢數(shù)據(jù)庫(kù),橫表和縱表的相互轉(zhuǎn)換就是其中一個(gè)常見(jiàn)的情景,這篇文章主要給大家介紹了關(guān)于Mysql縱表轉(zhuǎn)換為橫表的相關(guān)資料,需要的朋友可以參考下2021-08-08MySQL生產(chǎn)庫(kù)Insert了2次同樣的記錄但是主鍵ID是不一樣的問(wèn)題的分析過(guò)程
這篇文章主要介紹了MySQL生產(chǎn)庫(kù)Insert了2次同樣的記錄但是主鍵ID是不一樣的問(wèn)題的分析過(guò)程,需要的朋友可以參考下2014-02-02mysql出現(xiàn)Error performing load command的解決方法
一般就是數(shù)據(jù)庫(kù)表字段類型問(wèn)題,大家參考下面的方法解決下2008-06-06MySQL中Replace語(yǔ)句用法實(shí)例詳解
mysql的replace函數(shù)是一個(gè)非常方便的替換函數(shù),下面這篇文章主要給大家給大家介紹了關(guān)于MySQL中Replace語(yǔ)句用法的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08Mysql 命令行模式訪問(wèn)操作mysql數(shù)據(jù)庫(kù)操作
這篇文章主要介紹了Mysql 命令行模式訪問(wèn)操作mysql數(shù)據(jù)庫(kù)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-08-08