欢迎访问 生活随笔!

凯发k8官方网

当前位置: 凯发k8官方网 > 运维知识 > 数据库 >内容正文

数据库

mysql8中文排序-凯发k8官方网

发布时间:2024/10/8 数据库 0 豆豆
凯发k8官方网 收集整理的这篇文章主要介绍了 mysql8中文排序_mysql中utf8编码的中文字段按拼音排序 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

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

2010-08-24 17:36 by tomorrowman | 分类: 技术, 数据库

如果在mysql中使用字符集为utf8,想要对中文字段用order by chinese_field 排序,那么出来的顺序并不是按照拼音排序的,不是我们想要的结果。

解决方法:

1、改变字符编码为gbk。

dd

2、不想改变编码的话,可以用如下方法:

对中文字段使用gbk编码排序:

select * from table order by convert( chinese_field using gbk ) ;

当然这需要你安装mysql时安装了gbk字符集,不然会报错:#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)

上面的原因是插入数据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)

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

对于改字符集的方法,加一个库默认字符集gbk,建表,然后排序,得到的就是拍好的

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

一些相关语句

1、使用showcharacterset语句列出数据库中可用的字符集:

mysql>showcharacterset;2、要想列出一个字符集的校对(collation)规则,使用show collation语句。

例如,要想查看latin1(“西欧iso-8859-1”)字符集的校对规则,使用下面的语句查找那些名字以latin1开头的校对规则:

mysql>show collationlike'latin1%';3.查看数据表的字符集

mysql>showcreatetablemytable;

这个命令也可以查看建这个表的sql语句。

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

有空还是要看一下字符集的问题

总结

以上是凯发k8官方网为你收集整理的mysql8中文排序_mysql中utf8编码的中文字段按拼音排序的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得凯发k8官方网网站内容还不错,欢迎将凯发k8官方网推荐给好友。

网站地图