发新话题
打印

MYSQL 中取拼音首字母的函数

MYSQL 中取拼音首字母的函数

今天碰到了取拼音首字母的需求。整理了一下。
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)
PYHZ
A
B簿
C
D
E
F
G
H
J
K
L
M
N
O
P
Q
R
S
T
W
X
Y
Z

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、测试结果:


                                               
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('他爸也是我')
WYT
换个头像,看见广告就眼红,直接封ID。

TOP

存储过程
换个头像,看见广告就眼红,直接封ID。

TOP

你这个有问题

(0 row(s) affected, 1 warning(s))
Execution Time : 00:00:00:000
Transfer Time  : 00:00:00:000
Total Time     : 00:00:00:000

Error Code : 1227
Access denied; you need the SUPER privilege for this operation

Execution Time : 00:00:00:000
Transfer Time  : 00:00:00:000
Total Time     : 00:00:00:000
java php orancle mysql

TOP

发新话题