MySQL是我们常用的开源关系型数据库,由于其开源深受中小型企业的欢迎,除了一些交易类或者需要高精确性的业务外,MySQL都能满足。因此,在平时的工作中就会碰到对汉字排序这样的问题,存储的数据中绝大多数都是和中文相关,毕竟是在中国。
汉字排序,涉及到按姓名、店铺名称、区域等,按姓名的字母从A到Z等之类的排序。
如果我们在设计库、表的时候指定了字符集为GBK时,由于GBK编码的原因,本身支持拼音排序的方法,直接使用order by 字段名称desc就可以了。如果不是的话,通过将字段值转化成gbk字符集的形式。
如上的两个图,就可以得到我们想要的结果。上图由于不是GBK字符集的,所以得出的结果并不是按字母顺序排序的,下图在排序的时候将字符集进行了转换,使得支持GBK,这样就可以得到我们想要的结果。
如果有更复杂的排序需求,可以利用中间表的功能实现相应的目的,主要的思想是建立一个中间表,表中存储汉字与某种排序的关系,然后通过关联的方法最终得到我们想要的排序结果。
Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有