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

MySql汉字转拼音助记码

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

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默认引擎MyISAM|InnoDB

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

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。