我是靠谱客的博主 淡然早晨,最近开发中收集的这篇文章主要介绍mysql 拼音模糊查询_mysql中文字段转拼音首字母,以及中文拼音模糊查询,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

创建存储过程,将中文字段转拼音首字母

CREATE DEFINER=`root`@`%` 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;

中文转拼音

CREATE DEFINER=`root`@`%` 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;

调用

select upper(pinyin(user_name)) as un,user_name from ecs_users where user_id=63 and upper(pinyin(user_name)) like ‘%c%‘;

原文:http://www.cnblogs.com/zenghansen/p/4846460.html

最后

以上就是淡然早晨为你收集整理的mysql 拼音模糊查询_mysql中文字段转拼音首字母,以及中文拼音模糊查询的全部内容,希望文章能够帮你解决mysql 拼音模糊查询_mysql中文字段转拼音首字母,以及中文拼音模糊查询所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部