- DROP FUNCTION IF EXISTS `getPY`;
- DELIMITER ;;
- CREATE FUNCTION `getPY`(in_string VARCHAR(65534)) RETURNS mediumtext CHARSET utf8
- BEGIN
- DECLARE tmp_str VARCHAR(65534) charset gbk DEFAULT '' ; #截取字符串,每次做截取后的字符串存放在该变量中,初始为函数参数in_string值
- DECLARE tmp_len SMALLINT DEFAULT 0;#tmp_str的长度
- DECLARE tmp_char VARCHAR(2) charset gbk DEFAULT '';#截取字符,每次 left(tmp_str,1) 返回值存放在该变量中
- DECLARE tmp_rs VARCHAR(65534) charset gbk DEFAULT '';#结果字符串
- DECLARE tmp_cc VARCHAR(2) charset gbk DEFAULT '';#拼音字符,存放单个汉字对应的拼音首字符
- SET tmp_str = in_string;#初始化,将in_string赋给tmp_str
- SET tmp_len = LENGTH(tmp_str);#初始化长度
- WHILE tmp_len > 0 DO #如果被计算的tmp_str长度大于0则进入该while
- SET tmp_char = LEFT(tmp_str,1);#获取tmp_str最左端的首个字符,注意这里是获取首个字符,该字符可能是汉字,也可能不是。
- SET tmp_cc = tmp_char;#左端首个字符赋值给拼音字符
- IF LENGTH(tmp_char)>1 THEN#判断左端首个字符是多字节还是单字节字符,要是多字节则认为是汉字且作以下拼音获取,要是单字节则不处理。
- SELECT ELT(INTERVAL(CONV(HEX(tmp_char),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') INTO tmp_cc; #获得汉字拼音首字符
- END IF;
- SET tmp_rs = CONCAT(tmp_rs,tmp_cc);#将当前tmp_str左端首个字符拼音首字符与返回字符串拼接
- SET tmp_str = SUBSTRING(tmp_str,2);#将tmp_str左端首字符去除
- SET tmp_len = LENGTH(tmp_str);#计算当前字符串长度
- END WHILE;
- RETURN tmp_rs;#返回结果字符串
- END;;
- DELIMITER ;
mysql 中如何取得汉字字段的各汉字首字母
2020-04-16 15:42MYSQL教程网 Mysql
这篇文章主要介绍了mysql中如何取得汉字字段的各汉字首字母,需要的朋友可以参考下
延伸 · 阅读
- 2022-03-11MySQL的索引你了解吗
- 2022-03-10面试中老生常谈的MySQL问答集锦夯实基础
- 2022-03-10浅谈如何保证Mysql主从一致
- 2022-03-10Ubuntu18.04(linux)安装MySQL的方法步骤
- 2022-03-09MySQL让人又爱又恨的多表查询
- 2022-03-09MySQL Server 层和存储引擎层是怎么交互数据的?
- Mysql
MySQL下的RAND()优化案例分析
这篇文章主要介绍了MySQL下的RAND()优化案例,包括对JOIN查询和子查询的优化,需要的朋友可以参考下 ...
- Mysql
为什么MySQL选择Repeatable Read作为默认隔离级别
关于MySQL的事务隔离级别,相信很多读者都不陌生,那么,你知道为什么Oracle选择RC作为默认级别,而MySQL要选择RR作为默认的隔离级别吗...
- Mysql
MAC下修改mysql默认字符集为utf8的方法
本文主要介绍了如何修改MAC版mysql默认字符集为utf8,如果你的MAC版mysql字符乱码,可以参考一下这篇文章 ...
- Mysql
MySQL5.6解压版服务无法启动之系统错误1067问题
这篇文章主要介绍了MySQL5.6解压版服务无法启动—系统错误1067问题及解决方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考...
- Mysql
解决Linux下Tomcat向MySQL插入数据中文乱码问题
本文给大家介绍的是如何解决win平台下开发的项目移植到Linux平台后,向MySQL插入数据时中文出现乱码的问题,非常的简单实用,有需要的小伙伴可以参考下...
- Mysql
mysql 8.0.16 winx64安装配置方法图文教程
这篇文章主要为大家分享了mysql 8.0.16 安装配置方法图文教程,具有一定的参考价值,感兴趣的朋友可以参考一下 ...
- Mysql
新建一个MySQL数据库的简单教程
这篇文章主要介绍了新建一个MySQL数据库的简单教程,是MySQL入门学习中的基础知识,需要的朋友可以参考下 ...
- Mysql
图文详解MySQL中的主键与事务
这篇文章主要给大家介绍了关于MySQL中主键与事务的相关资料,主键与事务是我们使用mysql中经常遇到的,文中通过图文以及实例代码介绍的很详细,需要的...