前言
因测试对于中文排序提出质疑:有十个业务类型名称,排序的顺序为啥不是按照一般情况下的英文首字母排序的,如何确保每次排序都是一个顺序,故此我展开了小小的探索。
问题
数据库的数据是通过什么原则进行排序的?
- 查询语句
select brand_name,name from goods order by brand_name,name
- 结果
疑问:为何华为会排在戴尔的前面?华的拼音不是H开头,戴尔不是D开头吗?
如下将看到答案。
数据库编码方式
- gbase的中文排序是根据该数据库的编码进行排序的。可能是utf8,可能是gb2312,编码方式不同排序结果不同。(其他数据库类同)
- 通过查看表结构查看编码方式
- sql查询语句
show create table jing_dong.goods ;
- 查询结果
CREATE TABLE `goods` (
`id` int(10) unsigne