解决中文名单按拼音排序的问题
1、问题
在个人的开发工作中,遇到问题:当时在CRM的客户列表中,拉取客户所属人下拉框功能时,发现系统加载所有用户名称名单,如下图。
![](/assets/blank.gif)
问题来了,业务员名称在下拉框的列表中,并没有按照正常惯例以拼音正序进行排序,尤其时名单较多时,不易找到目标名称,影响用户的使用体验。
2、排查
起初以为代码中没有指定排序规则,随后在相应的代码处增加字段排序,以其中一处的代码如例:
|
将对应的SQL在数据库执行,运行后,依然没有生效。
经查询资料,发现问题在于字段的字符集。当前的整个数据库字符集默认是utf8,当需要对有汉字的字段进行拼音排序时(特别涉及到类似于名字这样的字段时),默认无法直接通过Order By关键字正确排序。
如果是字符集是GBK时,可以直接通过汉字的拼音排序。
3、解决
知道问题本质原因后,修改代码后代码如下:
|
重启后,效果图如下
![](/assets/blank.gif)
4、引申
如果哪天出现需要按照汉字笔画进行排序怎么办?
MySQL不支持汉字笔画排序的,基本都是按照自然语言来排序的。
但是可以变换一下思路,比如:
首先新建一个表,表中存姓氏和笔画数,然后在目标表中添加一个存笔画的字段,这样搜索的时候就可以按照笔画来排序了。
解决中文名单按拼音排序的问题相关推荐
- 微信小程序input搜索解决中文问题(输入拼音) 实时搜索节流处理(bindinput 节流)
微信小程序input搜索解决中文问题(输入拼音) & 实时搜索节流处理(bindinput 节流) 问题 微信小程序输入拼音的时候, 还没有完全输入完成, bindinput就会触发, 当我输 ...
- mysql8中文排序_mysql中utf8编码的中文字段按拼音排序
http://blog.s777n.net/orderbychinesefieldutf8/comment-page-2/ 2010-08-24 17:36 by TomorrowMan | 分类: ...
- java对中文首字母拼音排序
Java本身并没有提供汉字拼音排序的功能.但是,我们可以使用第三方库或者自己实现算法来解决这个问题. 下面是使用开源库"Pinyin4j"实现汉字拼音排序的示例代码: ``` im ...
- js中文汉字按拼音排序
1,datatable拓展 按中文排序 jQuery.extend( jQuery.fn.dataTableExt.oSort, {"chinese-string-asc" : f ...
- mysql中拼音排序的方法_mysql的中文数据按拼音排序的2个方法
客服那边需要我对一些酒店进行中文拼音排序,以前没有接触过,在php群里问了一些大牛..得到了2种答案,都可以.哈哈·~ 以下既是msyql 例子,表结构是utf-8的 方法一.复制代码 代码如下:SE ...
- Java对List中的中文属性按照拼音排序
比较简单的问题,可以用Collections.sort()来进行排序 一般情况下我们会这样做: private static final List<TestEntity> testEnti ...
- 中文汉字按拼音排序并按字母分类(uniapp indexedList索引列表格式匹配)
最近做uni-app项目,遇到中文排序,使用indexedList组件布局渲染.自己也是查询了很多资料,https://www.cnblogs.com/wteng/p/5658972.html展现了一 ...
- 中文姓名按照拼音排序-python
写在前面 在做文档排版的时候经常会遇到姓名的排序问题,当人名很多的时候,我们是不可能人工的一个一个比较排序,那么有什么办法快速解决这一问题吗?答案可定是有,今天为大家介绍一种. 程序 from xpi ...
- 数据库中文字段按拼音排序
使用 order by convert_to(city, 'GBK') 方式按中文字典顺序排序, 测试如下: create table public.test_city(id bigserial pr ...
最新文章
- discard connection丢失数据_python kafka 生产者发送数据的三种方式
- 精选10大机器学习开源项目 !(附链接)
- Android的IPC机制(一)——AIDL的使用
- 分布式文件系统(HDFS)与 linux系统文件系统 对比
- 计算机应用基础 a卷,计算机应用基础笔试A卷.doc
- linux suse 安装redis,suse 安装redis(示例代码)
- gels imagej 图片处理_如何用ImageJ进行粒度分析
- 贝塞尔曲线UIBezierPath简单使用
- Eclipse的Git插件Egit: merge合并冲突具体解决方法
- 八数码 (Astar)
- 在App Store提交应用时,提示“app名称已被使用”
- [联合集训6-25] 蓝雨 线段树+主席树+hash
- pritunl管理工具-路由转发配置
- oracle官网数据库使用迅雷下载方法
- (四)双击放大与缩小图片
- 求助 MOR-Tales of seafaring
- 标品和非标品如何选品,选品的重要性,店铺怎样布局
- 2021年度高等院校皇家勋章授勋仪式-乌隆他尼皇家大学
- 计算机硬盘内存不足,电脑提示磁盘空间不足怎么办
- Linux乌班图系统,如何安装和配置mysql
热门文章
- Linux/UNIX系统编程手册gg
- golang各数值类型的最大最小值
- 严重: Allocate exception for servlet CustomerServlet java.lang.ClassNotFoundException: cn.itcast.cstm.
- cad相贯展开图lisp_cad相贯线的画法
- 中国ACM橡胶市场调研与投资预测报告(2022版)
- 程序员必备狂拽炫酷吊炸天的动效神器
- vb.net 图片水平翻转_犁耕作业效果差?试试大马力拖拉机液压翻转犁正确调整与使用方法...
- UE4 让材质的UV动起来
- [转载]李开复:什么是领导力
- O-RAN,真的会成功吗?[转载]