当前位置:首页 > My SQL > 正文内容

MySql汉字转拼音助记码

Z先生10年前 (2016-05-23)My SQL7084

1、函数fristPinyin

DROP FUNCTION
IF EXISTS fristPinyin;

CREATE FUNCTION `fristPinyin` (P_NAME VARCHAR(255)) RETURNS VARCHAR (255) CHARSET utf8
BEGIN
	DECLARE
		V_RETURN VARCHAR (255);


SET V_RETURN = ELT(
	INTERVAL (
		CONV(
			HEX(
				LEFT (CONVERT(P_NAME 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'
);

RETURN V_RETURN;


END

2、函数pinyin

DROP FUNCTION
IF EXISTS pinyin;

CREATE FUNCTION `pinyin` (P_NAME VARCHAR(255)) RETURNS VARCHAR (255) CHARSET utf8
BEGIN
	DECLARE
		V_COMPARE VARCHAR (255);

DECLARE
	V_RETURN VARCHAR (255);

DECLARE
	I INT;


SET I = 1;


SET V_RETURN = '';


WHILE I < LENGTH(P_NAME) DO

SET V_COMPARE = SUBSTR(P_NAME, I, 1);


IF (V_COMPARE != '') THEN
	#SET V_RETURN = CONCAT(V_RETURN, ',', V_COMPARE);
SET V_RETURN = CONCAT(
	V_RETURN,
	fristPinyin (V_COMPARE)
);

#SET V_RETURN = fristPinyin(V_COMPARE);
END
IF;


SET I = I + 1;


END
WHILE;


IF (
	ISNULL(V_RETURN)
	OR V_RETURN = ''
) THEN

SET V_RETURN = P_NAME;


END
IF;

RETURN V_RETURN;


END

3、如果执行时报错,先运行

SET GLOBAL log_bin_trust_function_creators = TRUE;

4、基础用法

SELECT
	pinyin ('欣创网络') AS '大写',
	lower(pinyin('欣创网络')) AS '小写'



分享给朋友:

相关文章

Mysql 复合更新代码片段(mysql update join)

直接上代码UPDATE  xcwl_biz a INNER JOIN ( SELECT bizid, count(orderid)&nbs...

Mysql 时间戳相关函数

时间戳转字符串:select from_unixtime(time),time单位是秒。或者select from_unixtime(time,format),time单位是秒。select ...

mysq42000错误只1071解决方案

欣达CMS在安装过程中,出现以下错误提示:SQLSTATE[42000]: Syntax error or access violation:&nbs...

MySQL中InnoDB和MyISAM对比及索引原理区别

MySQL中InnoDB和MyISAM对比及索引原理区别

InnoDB和MyISAM是很多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,5.7之后就不一样了1、事务和外键InnoDB具有事务,支持4个事务隔离级别,回滚,崩溃修复能力和多版本并...

更改mysql默认引擎MyISAM|InnoDB

打开MySQL配置文件,Win下面默认是my.ini,Linux下面默认是my.conf[mysqld]下面加入(如果有则修改):default-storage-engine = ...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。
请先 登录 再评论,若不是会员请先 注册