MYSQL和JAVA中将中文汉字按照拼音首字母排序

一、MYSQL将中文汉字按照拼音首字母排序

数据库使用的字符编码是utf8_general_ci,如下

sql 复制代码
ORDER BY CONVERT(表名.字段名 USING gbk) COLLATE gbk_chinese_ci ASC;

若是表查询,CONVERT中可以不添加表名。

查询结果如下:

二、JAVA中将中文汉字按照拼音首字母排序

1.String集合排序

java 复制代码
		List<String> list = new ArrayList<>();
		list.add("北京");
		list.add("上海");
		list.add("广州");
		list.add("深圳");
		list.add("长沙");
		Comparator comparator = Collator.getInstance(Locale.CHINA);
		list.sort(comparator::compare);
		list.stream().forEach(System.out::println);

运行结果:

2.对象集合排序

java 复制代码
		List<City> cityList = new ArrayList<>();
		cityList.add(new City(1, "北京"));
		cityList.add(new City(2, "上海"));
		cityList.add(new City(3, "广州"));
		cityList.add(new City(4, "深圳"));
		cityList.add(new City(5, "长沙"));
		// 获取中文环境
		Comparator comparator = Collator.getInstance(Locale.CHINA);
		// 排序
		Collections.sort(cityList, (e1, e2) -> {
		    return comparator.compare(e1.getName(), e2.getName());
		});
		
		cityList.stream().forEach(System.out::println);

运行结果:

相关推荐
小小的木头人2 分钟前
Docker MySQL 单主从及分表函数
mysql
lemon_sjdk2 分钟前
每天学习一个新注解——@SafeVarargs
java
RoboWizard4 分钟前
电脑效能跃升利器 金士顿KVR内存焕新机
java·spring·智能手机·电脑·金士顿
小蜗的房子13 分钟前
MySQL学习之SQL语法与操作
数据结构·数据库·经验分享·sql·mysql·学习方法·数据库开发
洲覆17 分钟前
MySQL 索引原理
数据库·mysql
微露清风26 分钟前
系统性学习C++-第七讲-string类
java·c++·学习
spencer_tseng1 小时前
JDK 9 List.of(...)
java·windows·list·1024程序员节
不平衡的叉叉树1 小时前
mybatis-plus的insertBatchSomeColumn方法实现批量插入
java·mybatis
学IT的周星星1 小时前
Maven 项目和 Maven Web 项目的异同点
java·maven
摇滚侠1 小时前
Spring Boot3零基础教程,函数式 Web 新特性,笔记51
java·spring boot·笔记