以前一直写脚本将数据库中的中文转成拼音首字母保存,突然发现原来mysql也有这个功能,特意备份下!

fristPinyin : 此函数是将一个中文字符串的第一个汉字转成拼音字母 (例如:"中国人"->Z)

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

pinyin :此函数是将一个中文字符串对应拼音母的每个相连 (例如:"中国人"->ZGR)

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

示例:

select p.province, fristPinyin(p.province), pinyin(p.province) from province p;

+------------------+-------------------------+--------------------+

| province         | fristPinyin(p.province) | pinyin(p.province) |

+------------------+-------------------------+--------------------+

| 北京市           | B                       | BJS                |

| 天津市           | T                       | TJS                |

| 河北省           | H                       | HBS                |

| 山西省           | S                       | SXS                |

| 内蒙古自治区     | N                       | NMGZZQ             |

+------------------+-------------------------+--------------------+

5 rows in set

如果在创建函数的时候出现如下错误:

This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its de...

这是我们开启了bin-log, 我们就必须指定我们的函数是否是

1 DETERMINISTIC 不确定的

2 NO SQL 没有SQl语句,当然也不会修改数据

3 READS SQL DATA 只是读取数据,当然也不会修改数据

4 MODIFIES SQL DATA 要修改数据

5 CONTAINS SQL 包含了SQL语句

其中在function里面,只有 DETERMINISTIC, NO SQL 和 READS SQL DATA 被支持。如果我们开启了 bin-log, 我们就必须为我们的function指定一个参数。

在MySQL中创建函数时出现这种错误的解决方法:

set global log_bin_trust_function_creators=TRUE;

mysql汉字转拼音首字母报错_MySQL 汉字转拼音相关推荐

  1. mysql汉字转拼音首字母报错_MySql 汉字转拼音首字母

    DELIMITER $$ USE `test`$$ DROP FUNCTION IF EXISTS `getPY`$$ CREATE DEFINER=`hjd`@`%` FUNCTION `getPY ...

  2. mysql查询汉字拼音首字母的方法_MySQL查询汉字拼音首字母的方法

    下面为您介绍了MySQL查询汉字拼音首字母的方法,该方法极具实用价值,如果您之前遇到过类似方面的问题,不妨一看. MySQL查询汉字拼音首字母方法如下: 1.建立拼音首字母资料表 Sql代码: DRO ...

  3. python汉字转拼音首字母_python获取一组汉字拼音首字母的方法

    作者:不吃皮蛋 字体: 类型:转载 这篇文章主要介绍了python获取一组汉字拼音首字母的方法,涉及Python针对汉字操作的相关技巧,需要的朋友可以参考下 本文实例讲述了python获取一组汉字拼音 ...

  4. java取拼音首字母_java怎么根据汉字获取字的拼音首字母

    展开全部 这里可以使用62616964757a686964616fe58685e5aeb931333363393633 pinyin4. jar包来进行转化,pinyin4. jar可以自行在网上进行 ...

  5. php 汉字拼音首字母,PHP获得中文汉字拼音首字母例子

    获取给出汉字中拼音的第一个汉字字母我们可以利用汉字的一个编码来进行判断,下面我们来给大家介绍一个例子,非常的简单好用. 先来看看怎样取得单个汉字的拼音首字母,请看下面这个函数,它支持GBK和UTF8编 ...

  6. php获取拼音首字母排序,PHP获取汉字拼音首字母的方法

    PHP获取汉字拼音首字母的方法: function getfirstchar($s0){ $fchar = ord($s0{0}); if($fchar >= ord("A" ...

  7. [Emuelec]支持中文拼音首字母搜索,但不显示拼音首字母

    1.在gamelist.xml中添加字段sortname,将游戏名(不带拼音首字母的名字)填入其中 2.在游戏系统选择文本筛选模式为"按排序名筛选" 查看结果,字幕尾巴不见了 对应 ...

  8. Mysql提示缺少表的别名报错_mysql对sql中别名引起的Column not found问题

    Caused by: java.sql.SQLException: Column 'BTN_ICON' not found. 报错信息是找不到表中的某字段,但是表里确确实实有这个字段. 这个问题,在百 ...

  9. mysql添加外键的时候报错_mysql处理添加外键时 error 150 问题

    当你试图在mysql中创建一个外键的时候,这个出错会经常发生,这是非常令人沮丧的.像这种不能创建一个.frm 文件的报错好像暗示着操作系统的文件的权限错误或者其它原因,但实际上,这些都不是的,事实上, ...

  10. java首字母报错_下列关于Java名称命名的约定,错误的是()。A.-.$不作为变量名、方法名开头B.变量名、方法名首字母小...

    在下述复合地基处理方法中,属于散体材料桩的是().A.灰土桩B.CFG桩C.低强度水泥砂石桩D.渣土桩 如图所示,滑轮组下端用细线吊着边长为0.2m的正方体物块,物块放在水平地面上.若用F1=120N ...

最新文章

  1. 【C语言】模拟实现库函数 strcpy(复制字符串内容) 与 strlen(求字符串长度)
  2. cufflinks基于dataframe数据绘制柱状图(bar plot)、堆叠柱状图(stacked bar plot)
  3. 南航计算机硬件实验,南航80X86微机原理及接口技术实验指导书.pdf
  4. Java开源——常见J2EE框架简介
  5. linux安装java_linux中替换系统自带的OpenJDK
  6. 四十六、Qt网络(六)UDP
  7. 怎么使用缓存、缓存穿透、热点数据处理、缓存雪崩解决方案 - 公开课笔记
  8. linux内核开发_Linux 内核的代码仓库管理与开发流程简介
  9. Linux下搭建FTP服务器笔记
  10. 告别 ROR windows 部署的噩梦-在 windows 上面 使用 Apache 部署 Ruby On Rails
  11. [Teamcenter 2007 开发实战] 获取错误或提示信息
  12. 《C++ Primer》读书笔记—第六章 函数
  13. 【转】用instruments来检验你的app
  14. 苹果mac专业的视频转码器:HandBrake
  15. postman的基础使用
  16. 傅里叶变换,拉普拉斯变换和小波变换
  17. HTTP方式文件分片断点下载
  18. 苏州大学计算机考研 复试机试真题2013-2020真题及Python题解
  19. 消费者行为学的典型营销案例
  20. 36线性映射03——线性空间的同构、同构的性质、线性同构

热门文章

  1. 进销存单机版 vb.net + access_某年某月_新浪博客
  2. Amos实操教程 | 中介效应检验
  3. 麻雀搜索算法——Matlab
  4. Python实现网段固定端口扫描
  5. [大数据]Hadoop+Storm+Spark全套入门及实战视频教程
  6. python编写水仙花数
  7. 全国最新省市县联动mysql_全国省市县区三级联动数据库mysql3500条数据-html资源网...
  8. 计算机操作系统--文件管理
  9. 汉字--拼音--网页汉字转拼音--包教包会
  10. [转]coolfire黑客入门教程系列之(二)