日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql8中文排序_mysql中utf8编码的中文字段按拼音排序

發(fā)布時(shí)間:2024/10/8 数据库 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql8中文排序_mysql中utf8编码的中文字段按拼音排序 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

http://blog.s777n.net/orderbychinesefieldutf8/comment-page-2/

2010-08-24 17:36 by TomorrowMan | 分類: 技術(shù), 數(shù)據(jù)庫

如果在mysql中使用字符集為utf8,想要對中文字段用order by chinese_field 排序,那么出來的順序并不是按照拼音排序的,不是我們想要的結(jié)果。

解決方法:

1、改變字符編碼為gbk。

DD

2、不想改變編碼的話,可以用如下方法:

對中文字段使用gbk編碼排序:

SELECT * FROM table ORDER BY CONVERT( chinese_field USING gbk ) ;

當(dāng)然這需要你安裝mysql時(shí)安裝了gbk字符集,不然會(huì)報(bào)錯(cuò):#1115 - Unknown character set: 'gbk'

試了好像有不對的

mysql> select * from ywang order by convert(tname using gbk);

+------+--------+

| id?? | tname? |

+------+--------+

|??? 2 | 啊??? |

|??? 2 | 啊??? |

|??? 1 | 測試 |

|??? 1 | 測試 |

|??? 4 | 云??? |

|??? 4 | 云??? |

|??? 3 | 打??? |

|??? 3 | 打??? |

+------+--------+

8 rows in set (0.01 sec)

上面的原因是插入數(shù)據(jù)client段使用字符集問題

另一例:

mysql> select * from yy order by convert(tname using gbk);

+------+-------+

| id?? | tname |

+------+-------+

|??? 2 | 啊??? |

|??? 1 | 才??? |

|??? 4 | 他??? |

|??? 3 | 一??? |

+------+-------+

4 rows in set (0.01 sec)

mysql> show create table yy;

+-------+--------------------------------------------------------------------------------------------------------------------------+

| Table | Create Table???????????????????????????????????????????????????????????????????????????????????????????????????????????? |

+-------+--------------------------------------------------------------------------------------------------------------------------+

| yy??? | CREATE TABLE `yy` (

`id` int(11) DEFAULT NULL,

`tname` varchar(50) DEFAULT NULL

) ENGINE=MyISAM DEFAULT CHARSET=utf8 |

+-------+--------------------------------------------------------------------------------------------------------------------------+

1 row in set (0.00 sec)

mysql> select * from yy;

+------+-------+

| id?? | tname |

+------+-------+

|??? 1 | 才??? |

|??? 2 | 啊??? |

|??? 3 | 一??? |

|??? 4 | 他??? |

+------+-------+

4 rows in set (0.00 sec)

***************************

對于改字符集的方法,加一個(gè)庫默認(rèn)字符集gbk,建表,然后排序,得到的就是拍好的

************************************

一些相關(guān)語句

1、使用SHOWCHARACTERSET語句列出數(shù)據(jù)庫中可用的字符集:

mysql>SHOWCHARACTERSET;2、要想列出一個(gè)字符集的校對(Collation)規(guī)則,使用SHOW COLLATION語句。

例如,要想查看latin1(“西歐ISO-8859-1”)字符集的校對規(guī)則,使用下面的語句查找那些名字以latin1開頭的校對規(guī)則:

mysql>SHOW COLLATIONLIKE'latin1%';3.查看數(shù)據(jù)表的字符集

mysql>showcreatetablemytable;

這個(gè)命令也可以查看建這個(gè)表的SQL語句。

******************************

有空還是要看一下字符集的問題

總結(jié)

以上是生活随笔為你收集整理的mysql8中文排序_mysql中utf8编码的中文字段按拼音排序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。