MYSQL 汉字转拼音

一、将所有汉字转化成驼峰的完整拼音需要一个基础表做数据处理,将所有汉字转化成驼峰的完整拼音 (例如:"中国人" -> ZhongGuoRen)

建表

-- 建表及初始化基础数据
DROP TABLE IF EXISTS `t_base_pinyin`;
CREATE TABLE IF NOT EXISTS `t_base_pinyin` (
  `pin_yin_` varchar(255) CHARACTER SET gbk NOT NULL,
  `code_` int(11) NOT NULL,
  PRIMARY KEY (`code_`)
);

插入数据

insert into t_base_pinyin(`pin_yin_`, `code_`) values 
('Zuo', 10254), ('Zun', 10256), ('Zui', 10260), ('Zuan', 10262), ('Zu', 10270), ('Zou', 10274), ('Zong', 10281), ('Zi', 10296), ('Zhuo', 10307), ('Zhun', 10309), 
('Zhui', 10315), ('Zhuang', 10322), ('Zhuan', 10328), ('Zhuai', 10329), ('Zhua', 10331), ('Zhu', 10519), ('Zhou', 10533), ('Zhong', 10544), ('Zhi', 10587), ('Zheng', 10764), 
('Zhen', 10780), ('Zhe', 10790), ('Zhao', 10800), ('Zhang', 10815), ('Zhan', 10832), ('Zhai', 10838), ('Zha', 11014), ('Zeng', 11018), ('Zen', 11019), ('Zei', 11020), 
('Ze', 11024), ('Zao', 11038), ('Zang', 11041), ('Zan', 11045), ('Zai', 11052), ('Za', 11055), ('Yun', 11067), ('Yue', 11077), ('Yuan', 11097), ('Yu', 11303), 
('You', 11324), ('Yong', 11339), ('Yo', 11340), ('Ying', 11358), ('Yin', 11536), ('Yi', 11589), ('Ye', 11604), ('Yao', 11781), ('Yang', 11798), ('Yan', 11831), 
('Ya', 11847), ('Xun', 11861), ('Xue', 11867), ('Xuan', 12039), ('Xu', 12058), ('Xiu', 12067), ('Xiong', 12074), ('Xing', 12089), ('Xin', 12099), ('Xie', 12120), 
('Xiao', 12300), ('Xiang', 12320), ('Xian', 12346), ('Xia', 12359), ('Xi', 12556), ('Wu', 12585), ('Wo', 12594), ('Weng', 12597), ('Wen', 12607), ('Wei', 12802), 
('Wang', 12812), ('Wan', 12829), ('Wai', 12831), ('Wa', 12838), ('Tuo', 12849), ('Tun', 12852), ('Tui', 12858), ('Tuan', 12860), ('Tu', 12871), ('Tou', 12875), ('Tong', 12888), 
('Ting', 13060), ('Tie', 13063), ('Tiao', 13068), ('Tian', 13076), ('Ti', 13091), ('Teng', 13095), ('Te', 13096), ('Tao', 13107), ('Tang', 13120), ('Tan', 13138), 
('Tai', 13147), ('T

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL本身并不支持将汉字换为拼音,但可以通过使用第三方函数库来实现。其中比较常用的是pinyin4j库。下面是一个使用pinyin4j库将汉字换为拼音MySQL函数示例: 1. 下载pinyin4j库,将里面的pinyin4j-2.5.0.jar文件拷贝到MySQL的plugin目录下(例如:/usr/local/mysql/lib/plugin/)。 2. 在MySQL中创建一个函数,例如: ```sql CREATE FUNCTION `fn_pinyin`(str VARCHAR(255)) RETURNS VARCHAR(255) DETERMINISTIC BEGIN DECLARE result VARCHAR(255); SELECT group_concat(pinyin separator '') INTO result FROM ( SELECT pinyin FROM ( SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(str, ',', n), ',', -1) AS hanzi FROM ( SELECT '阿里巴巴,腾讯科技' AS str, 1 AS n UNION ALL SELECT '中国,北京' AS str, 2 AS n ) AS t1 JOIN ( SELECT 1 + a.N + b.N * 10 + c.N * 100 AS n FROM (SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) AS a CROSS JOIN (SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) AS b CROSS JOIN (SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) AS c ORDER BY n ) AS t2 WHERE n <= 1 + (LENGTH(str) - LENGTH(REPLACE(str, ',', '')))) ) AS t3 JOIN ( SELECT hanzi, GROUP_CONCAT(pinyin) AS pinyin FROM ( SELECT hanzi, pinyin FROM ( SELECT hanzi, SUBSTRING(pinyin, 1, 1) AS pinyin FROM ( SELECT hanzi, pinyin FROM ( SELECT hanzi, pinyin FROM ( SELECT hanzi, pinyin FROM ( SELECT hanzi, pinyin FROM ( SELECT hanzi, pinyin FROM ( SELECT hanzi, pinyin FROM ( SELECT hanzi, pinyin FROM ( SELECT hanzi, pinyin FROM ( SELECT hanzi, pinyin FROM ( SELECT hanzi, pinyin FROM ( SELECT hanzi, pinyin FROM ( SELECT hanzi, pinyin FROM ( SELECT hanzi, pinyin FROM ( SELECT hanzi, pinyin FROM ( SELECT hanzi, pinyin FROM ( SELECT '阿' AS hanzi, 'a' AS pinyin UNION ALL SELECT '八' AS hanzi, 'b' AS pinyin UNION ALL SELECT '嚓' AS hanzi, 'c' AS pinyin UNION ALL SELECT '咚' AS hanzi, 'd' AS pinyin UNION ALL SELECT '妸' AS hanzi, 'e' AS pinyin UNION ALL SELECT '发' AS hanzi, 'f' AS pinyin UNION ALL SELECT '旮' AS hanzi, 'g' AS pinyin UNION ALL SELECT '铪' AS hanzi, 'h' AS pinyin UNION ALL SELECT '讥' AS hanzi, 'j' AS pinyin UNION ALL SELECT '咔' AS hanzi, 'k' AS pinyin UNION ALL SELECT '垃' AS hanzi, 'l' AS pinyin UNION ALL SELECT '嘸' AS hanzi, 'm' AS pinyin UNION ALL SELECT '拏' AS hanzi, 'n' AS pinyin UNION ALL SELECT '噢' AS hanzi, 'o' AS pinyin UNION ALL SELECT '妑' AS hanzi, 'p' AS pinyin UNION ALL SELECT '七' AS hanzi, 'q' AS pinyin UNION ALL SELECT '呥' AS hanzi, 'r' AS pinyin UNION ALL SELECT '仨' AS hanzi, 's' AS pinyin UNION ALL SELECT '他' AS hanzi, 't' AS pinyin UNION ALL SELECT '屲' AS hanzi, 'w' AS pinyin UNION ALL SELECT '夕' AS hanzi, 'x' AS pinyin UNION ALL SELECT '丫' AS hanzi, 'y' AS pinyin UNION ALL SELECT '帀' AS hanzi, 'z' AS pinyin ) AS t1 WHERE hanzi = SUBSTRING(hanzi, n, 1) ) AS t2 ) AS t3 WHERE hanzi = SUBSTRING(hanzi, n, 1) ) AS t4 WHERE hanzi = SUBSTRING(hanzi, n, 1) ) AS t5 WHERE hanzi = SUBSTRING(hanzi, n, 1) ) AS t6 WHERE hanzi = SUBSTRING(hanzi, n, 1) ) AS t7 WHERE hanzi = SUBSTRING(hanzi, n, 1) ) AS t8 WHERE hanzi = SUBSTRING(hanzi, n, 1) ) AS t9 WHERE hanzi = SUBSTRING(hanzi, n, 1) ) AS t10 WHERE hanzi = SUBSTRING(hanzi, n, 1) ) AS t11 WHERE hanzi = SUBSTRING(hanzi, n, 1) ) AS t12 WHERE hanzi = SUBSTRING(hanzi, n, 1) ) AS t13 WHERE hanzi = SUBSTRING(hanzi, n, 1) ) AS t14 WHERE hanzi = SUBSTRING(hanzi, n, 1) ) AS t15 WHERE hanzi = SUBSTRING(hanzi, n, 1) ) AS t16 WHERE hanzi = SUBSTRING(hanzi, n, 1) ) AS t17 GROUP BY hanzi ) AS t18 ON t3.hanzi = t18.hanzi ) AS t19 ) AS t20; RETURN result; END ``` 3. 使用该函数汉字拼音,例如: ```sql SELECT fn_pinyin('阿里巴巴,腾讯科技'); -- output: alibaba,tengxunkeji ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值