MYSQL 中取拼音首字母的函数
2008-01-17 14:00
288 查看
今天碰到了取拼音首字母的需求。整理了一下。
1、编码表:
/*DDL Information For - test.cs_char2letter*/
------------------------------------------------------
Table Create Table
-------------- ---------------------------------------------
cs_char2letter CREATE TABLE `cs_char2letter` (
`PY` char(1) character set utf8 NOT NULL,
`HZ` char(1) NOT NULL default '',
PRIMARY KEY (`PY`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk
2、记录信息:
3、取拼音首字母的函数:
DELIMITER $$
DROP FUNCTION IF EXISTS `test`.`func_get_first_letter`$$
CREATE DEFINER=`root`@`localhost` FUNCTION `func_get_first_letter`(
words varchar(255)) RETURNS char(1) CHARSET utf8
BEGIN
declare fpy char(1);
declare pc char(1);
declare cc char(4);
set @fpy = UPPER(left(words,1));
set @pc = (CONVERT(@fpy USING gbk));
set @cc = hex(@pc);
if @cc >= "8140" and @cc <="FEA0" then
begin
select PY from cs_char2letter where hz>=@pc limit 1 into @fpy;
end;
end if;
Return @fpy;
END$$
DELIMITER ;
4、测试结果:
5、附上表插表语句:
truncate table cs_char2letter;
set names utf8;
insert into cs_char2letter values
('A','骜'),
('B','簿'),
('C','错'),
('D','鵽'),
('E','樲'),
('F','鳆'),
('G','腂'),
('H','夻'),
('J','攈'),
('K','穒'),
('L','鱳'),
('M','旀'),
('N','桛'),
('O','沤'),
('P','曝'),
('Q','囕'),
('R','鶸'),
('S','蜶'),
('T','箨'),
('W','鹜'),
('X','鑂'),
('Y','韵'),
('Z','咗');
本文出自 “上帝,咱们不见不散!” 博客,转载请与作者联系!
1、编码表:
/*DDL Information For - test.cs_char2letter*/
------------------------------------------------------
Table Create Table
-------------- ---------------------------------------------
cs_char2letter CREATE TABLE `cs_char2letter` (
`PY` char(1) character set utf8 NOT NULL,
`HZ` char(1) NOT NULL default '',
PRIMARY KEY (`PY`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk
2、记录信息:
query result(23 records)
PY | HZ |
A | 骜 |
B | 簿 |
C | 错 |
D | 鵽 |
E | 樲 |
F | 鳆 |
G | 腂 |
H | 夻 |
J | 攈 |
K | 穒 |
L | 鱳 |
M | 旀 |
N | 桛 |
O | 沤 |
P | 曝 |
Q | 囕 |
R | 鶸 |
S | 蜶 |
T | 箨 |
W | 鹜 |
X | 鑂 |
Y | 韵 |
Z | 咗 |
DELIMITER $$
DROP FUNCTION IF EXISTS `test`.`func_get_first_letter`$$
CREATE DEFINER=`root`@`localhost` FUNCTION `func_get_first_letter`(
words varchar(255)) RETURNS char(1) CHARSET utf8
BEGIN
declare fpy char(1);
declare pc char(1);
declare cc char(4);
set @fpy = UPPER(left(words,1));
set @pc = (CONVERT(@fpy USING gbk));
set @cc = hex(@pc);
if @cc >= "8140" and @cc <="FEA0" then
begin
select PY from cs_char2letter where hz>=@pc limit 1 into @fpy;
end;
end if;
Return @fpy;
END$$
DELIMITER ;
4、测试结果:
select func_get_first_letter('我是月亮'),func_get_first_letter('月亮是我'),func_get_first_letter('他爸也是我'); |
query result(1 records)
func_get_first_letter('我是月亮') | func_get_first_letter('月亮是我') | func_get_first_letter('他爸也是我') |
W | Y | T |
truncate table cs_char2letter;
set names utf8;
insert into cs_char2letter values
('A','骜'),
('B','簿'),
('C','错'),
('D','鵽'),
('E','樲'),
('F','鳆'),
('G','腂'),
('H','夻'),
('J','攈'),
('K','穒'),
('L','鱳'),
('M','旀'),
('N','桛'),
('O','沤'),
('P','曝'),
('Q','囕'),
('R','鶸'),
('S','蜶'),
('T','箨'),
('W','鹜'),
('X','鑂'),
('Y','韵'),
('Z','咗');
本文出自 “上帝,咱们不见不散!” 博客,转载请与作者联系!
相关文章推荐
- MySQL中文汉字转拼音的自定义函数和使用实例(首字的首字母)
- MySQL通过函数获取字符串汉字拼音首字母大写字符串
- mysql中文汉字转拼音的自定义函数和使用实例(首字的首字母)
- MYSQL 中取拼音首字母的函数
- MySQL中文汉字转拼音的自定义函数和使用实例(首字的首字母)
- MySQL中文汉字转拼音的自定义函数和使用实例(首字的首字母)
- MYSQL 中取拼音首字母的函数
- EXLE中将汉字转换为拼音首字母的函数
- 一个效率很高的汉字转拼音首字母的函数(未测试)
- 获得汉字拼音首位字母的函数
- SQL取汉字拼音首字母的存储过程、函数
- 中将中文转为拼音首字母的函数及调用方法
- MySQL中文转换成拼音的函数
- MySQL按拼音首字母排序
- MySQL拼音首字母查询
- php/Mysql汉字按拼音首字母检索
- 汉字转换拼音或拼音首字母(两个函数)
- 存储过程获取汉字拼音头字母函数
- mysql 中文字段排序 - 按拼音首字母排序
- php 获得汉字拼音首字母的函数