`

MySQL汉字转换拼音(存储函数)

 
阅读更多

MySQL汉字转换拼音(存储函数)

 

BEGIN
DECLARE tmp_str VARCHAR(255) 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(255) 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 

 

分享到:
评论

相关推荐

    Mysql中文汉字转拼音的实现(每个汉字转换全拼)

    总之,通过创建拼音对照表和自定义函数,可以在MySQL中实现中文汉字到拼音的转换,但这种方法简单且适用于小规模的场景。对于大规模或复杂的汉字转拼音需求,可能需要结合其他工具和技术来实现。

    存储过程汉字转拼音

    在处理中文字符时,有时我们需要将汉字转换为拼音,这在某些特定场景下非常有用,比如搜索引擎优化(SEO)或数据分析。本文将深入探讨“存储过程汉字转拼音”这一主题。 首先,我们要明白汉字转拼音的基本原理。...

    MySQL按照汉字的拼音排序简单实例

    在MySQL数据库中,有时我们需要对汉字字段按照汉字的拼音顺序进行排序,这在处理中文数据时非常实用。本文将详细讲解如何实现这一功能,主要针对GBK和UTF-8两种字符集的情况。 首先,GBK字符集是一种双字节编码标准...

    mysql按姓名首字母搜索.docx

    在MySQL数据库中,进行按姓名首字母搜索时,通常需要处理中文字符转化为拼音的问题,以便进行字母顺序的排序和查询。文档中提到的两个自定义函数`fristPinyin`和`pinyin`就是用于解决这个问题的。 `fristPinyin`...

    获取拼音首码和五笔首码

    这个过程可能涉及汉字编码转换、拼音和五笔码的生成算法等技术。例如,GB2312、GBK、UTF-8等字符集编码的处理,以及如何高效地生成和存储拼音和五笔码。 在数据库设计时,可以创建一个特殊的数据表,包含汉字、拼音...

    使用PHP实现汉字转拼音1

    它可能需要一个静态变量来存储已经转换过的拼音,避免重复计算。例如: ```php public static function get_pinyin_array() { static $py_arr; if(isset($py_arr)) return $py_arr; // 这里填充拼音数组,可能...

    MySQL对中文进行排序详解及实例

    这通常不会按照汉字的拼音或笔画顺序进行排序,因为MySQL会把每个中文字符视为一个单独的单位,而不是考虑它们的内在结构或拼音。这就是为什么我们需要采取额外的步骤来确保正确的排序。 为了对中文字段进行拼音...

    php,mysql取汉字首字母

    为了能够提取汉字的首字母,我们首先需要创建一个映射表,该表存储了常用汉字与其拼音首字母之间的对应关系。创建表的SQL语句如下: ```sql CREATE TABLE `cs_char2letter` ( `PY` char(1) CHARACTER SET utf8 NOT...

    sql存储过程获取汉字拼音头字母函数

    【SQL存储过程获取汉字拼音头字母函数】 在SQL Server中,存储过程是一种预编译的SQL语句集合,可以用于执行复杂的数据库操作。本例中的`fn_GetPy`存储过程专注于处理一个特定任务:获取输入字符串(汉字)的每个...

    基于PHP的汉字查询拼音字典php版v1.0源码.zip

    4. **数据库操作**:可能涉及到MySQL或SQLite等数据库,存储汉字和对应的拼音数据。 5. **Web接口设计**:如HTML、CSS和JavaScript,构建用户交互界面,接收用户输入并显示结果。 6. **AJAX异步请求**:可能使用了...

    sql语句:简写拼音查询

    2. 在函数内部,声明了几个变量,包括`tmp_str`用于存储处理过程中的子字符串,`tmp_len`记录`tmp_str`的长度,`tmp_loc`用于找到汉字对应的拼音首字母位置,`tmp_char`存储单个字符,`tmp_rs`用于构建最终的拼音...

    获得汉字字符串的首字母

    在SQL中,我们通常不直接支持汉字到拼音的转换,因为这是操作系统或特定库的功能,如MySQL的`UNICODE`函数可以返回字符的Unicode编码,但并不直接提供拼音信息。然而,通过一些技巧和预先处理,我们可以间接地实现这...

    mysql 中如何取得汉字字段的各汉字首字母

    首先,创建一个名为`getPY`的存储函数,它接受一个VARCHAR类型的参数`in_string`,该参数代表含有汉字的字符串。函数的目的是返回这个字符串中所有汉字的首字母组成的字符串。 在函数内部,我们声明了几个变量来...

    mysql建立自定义函数的问题

    4. **数据转换**:例如,你可以创建一个函数将汉字转换为拼音,或者提取字符串中的数字。 5. **逻辑判断**:定义函数来执行条件判断,如判断输入的数字是否为正整数。 6. **数据清洗**:处理数据中的异常值或进行...

    查询汉字首字母及全拼sql自定义方法

    在IT行业中,尤其是在数据库管理和数据分析领域,经常需要处理汉字与拼音之间的转换,特别是在进行文本搜索、数据清洗或者构建用户友好的界面时。本篇将详细探讨如何利用SQL自定义方法来实现汉字首字母及全拼的查询...

    Android-将中华新华字典数据转换到可被导入到MySQL的sql文件

    你需要创建一个适合存储字典数据的MySQL表。表可能包含如下的结构: ```sql CREATE TABLE dictionary ( id INT AUTO_INCREMENT PRIMARY KEY, character VARCHAR(20) NOT NULL, pinyin VARCHAR(50), explanation...

    取汉字首字母_取汉字首字母_

    在计算机中,汉字是以Unicode编码存储的,而Unicode编码与汉字的拼音首字母之间存在一定的转换规则。通常,我们可以通过汉字的GBK或UTF-8编码来转换得到对应的拼音。例如,使用Pinyin4j这样的Java库,或者Python中的...

    RhymeSearch疯狂押韵-基于Django+Mysql的中文押韵词语搜索网站.zip

    拼音转换确保了即使用户输入的是汉字,系统也能准确识别其对应的拼音,从而找到押韵词。多音字处理则考虑了汉字的多种读音,增加搜索的准确性。而模糊搜索允许用户输入部分关键词,系统也能找出近似的押韵词汇。 总...

Global site tag (gtag.js) - Google Analytics