环境:基于MySQL php 开发
思路:
方法一:数据库建立存储过程(函数),查询时通过相关函数编译,之后进行比较;
方法二:在代码中查找相关字段,编译后进行比较。
方法一: 数据库建立两个存储过程
1、fristSx 获取每个字的首字母
CREATE FUNCTION `fristSx `(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
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);