mysql表中文字段提取拼音首字母
SELECT a.提取字段, IFNULL(ELT(INTERVAL (CONV(HEX(left(CONVERT(a.提取字段 USING gbk), 1)), 16, 10), 0xB0A1, 0xB0C5, 0xB2C1,0xB4EE,0xB6EA, 0xB7A2, 0xB8C1, 0xB9FE, 0xBBF7, 0xBFA6, 0xC0AC, 0xC2E8, 0xC4C3, 0xC5B6,0xC5BE, 0xC6DA,0xC8BB, 0xC8F6, 0xCBFA, 0xCDDA, 0xCEF4, 0xD1B9, 0xD4D1), 'A', 'B', 'C', 'D', 'E','F', 'G', 'H','J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'W', 'X', 'Y', 'Z'),'OTHER') as firstLetterFROM 你的表 a
mysql表中文字段按拼音首字母排序
ORDER BY CONVERT(你的排序字段 USING gbk) ASC
java实现中文转拼音
引入依赖
<dependency><groupId>com.belerweb</groupId><artifactId>pinyin4j</artifactId><version>2.5.0</version></dependency>
获取汉语首字母大写拼音例子
public static String convert(String str) {HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();// 设置字母类型属性format.setCaseType(HanyuPinyinCaseType.LOWERCASE);// 拼音小写format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);// 拼音不标声调format.setVCharType(HanyuPinyinVCharType.WITH_V);// u:的声母替换为vString firstLetter = "";try {String[] array = PinyinHelper.toHanyuPinyinStringArray(str.charAt(0), format); // 第一个字符转换为拼音if (array == null || array.length == 0) {// 判断字符串是否为空return ""; // 停止执行}String s = array[0];// 不管多音字,只取第一个char c = s.charAt(0);// 第一个字母firstLetter = String.valueOf(c).toUpperCase();// 转换大写} catch (BadHanyuPinyinOutputFormatCombination e) {}return firstLetter;}
输入: 呵呵
输出:H