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

MySql汉字转拼音助记码

Z先生9年前 (2016-05-23)My SQL7053

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 批量设置未设置默认值字段的默认值。

DROP PROCEDURE IF EXISTS `sp_setdefaultvalue`; CREATE PROCEDURE `sp_set...

mysql重置root密码(mysql忘记root密码的处理方式)

1、修改my.cnf(linux)/my.ini(Windows)文件,在[mysqld]下面加上skip-grant-tables配置选项;2、重启mysql服务;linux一般为:service...

浅谈 MySQL 中优化 SQL 语句查询常用的 30 种方法

1、对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2、应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎...

更改mysql默认引擎MyISAM|InnoDB

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

发表评论

访客

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