最好的方法还是用 PHP 来取拼音首字母,在 MySQL 里新建一个字段来存放

php 里查询汉字的拼音首字母已经有很多参考的代码了。

现在给出在mysql 里实现的, 测试环境是mysql-5.0.27-win32

1、建立拼音首字母资料表

复制代码 代码示例:

DROP TABLE IF EXISTS `pyk`;

CREATE TABLE `pyk` (

`PY` varchar(1) ,

`HZ1` int ,

`HZ2` int

) ;

INSERT INTO `pyk` (`PY`,`HZ1`,`HZ2`) VALUES

('A',-20319,-20284),

('B',-20283,-19776),

('C',-19775,-19219),

('D',-19218,-18711),

('E',-18710,-18527),

('F',-18526,-18240),

('G',-18239,-17923),

('H',-17922,-17418),

('J',-17417,-16475),

('K',-16474,-16213),

('L',-16212,-15641),

('M',-15640,-15166),

('N',-15165,-14923),

('O',-14922,-14915),

('P',-14914,-14631),

('Q',-14630,-14150),

('R',-14149,-14091),

('S',-14090,-13319),

('T',-13318,-12839),

('W',-12838,-12557),

('X',-12556,-11848),

('Y',-11847,-11056),

('Z',-11055,-10247);

2、建立mysql 函数

复制代码 代码示例:

DROP FUNCTION IF EXISTS hzcode;

delimiter //

CREATE FUNCTION hzcode (s CHAR(255)) RETURNS char

BEGIN

DECLARE hz_code int;

DECLARE hz_py char;

SET hz_code = ord(substring(s,1,1))*256+ord(substring(s,2,1))-65536 ;

select py into hz_py from pyk where hz_code>=pyk.hz1 and hz_code<=pyk

.hz2;

RETURN hz_py;

END

//

delimiter ;

数 据库类型如果是GBK的时候,这个函数好像有点小问题,稍微改动了下,貌似可以在GBK中使用了

delimiter $$

DROP FUNCTION IF EXISTS `hzcode`$$

CREATE FUNCTION `hzcode` (s CHAR(255)) RETURNS char

BEGIN

DECLARE hz_code int;

DECLARE hz_py char;

declare str varchar(400);

SET hz_code = ord(substring(s,1,1))-65536 ;

select py into hz_py from pyk where hz_code>=pyk.hz1 and hz_code<=pyk.hz2;

RETURN hz_py;

END$$

delimiter $$

3、测试

复制代码 代码示例:

mysql> select hzcode('南海龙王');

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

| hzcode('南海龙王') |

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

| N |

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

1 row in set (0.00 sec)

4、建立个测试表

复制代码 代码示例:

DROP TABLE IF EXISTS `f1`;

create table f1 (

name varchar(30),

pykey varchar(1)

);

insert into f1(name) values

('张三'),

('李四'),

('王五'),

('赵六'),

('钱七');

5、测试

复制代码 代码示例:

mysql> select * from f1;

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

| name | pykey |

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

| 张三 | NULL |

| 李四 | NULL |

| 王五 | NULL |

| 赵六 | NULL |

| 钱七 | NULL |

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

5 rows in set (0.00 sec)

mysql> update f1 set pykey = hzcode(name);

Query OK, 5 rows affected (0.05 sec)

Rows matched: 5 Changed: 5 Warnings: 0

mysql> select * from f1;

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

| name | pykey |

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

| 张三 | Z |

| 李四 | L |

| 王五 | W |

| 赵六 | Z |

| 钱七 | Q |

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

5 rows in set (0.00 sec)

这样就很方便地在MYSQL里查询汉字的首字母了。 类似地也可以直接在MYSQL得到汉字拼音。 不过需要拼音表,函数写法也不一样。

mysql查询汉字拼音首字母_MySQL查询汉字的拼音首字母实例教程相关推荐

  1. mysql select 查询选后5个_mysql 查询select语句汇总

    数据准备: 创建表: create table students( id int unsigned primary key auto_increment not null, name varchar( ...

  2. mysql查询的结果拼接字符串_MySql查询结果拼接成字符串

    背景:做SQL查询时会经常需要,把查询的结果拼接成一个字符串. 解决方法: 通过 group_concat 函数 1.正常查询 如下: select id result from ctp_enum_i ...

  3. mysql中日期判断的函数_MySql判断汉字、日期、数字的函数

    几个平常用的mysql函数 /***************************************************** 1.判断字符串是否为汉字 返回值:1-汉字 0-非汉字 *** ...

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

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

  5. mysql汉字转拼音首字母_MySQL中文汉字转拼音的自定义函数和使用实例(首字的首字母)...

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

  6. mysql 查看某个表缓存情况_MySQL 查询缓存 QUERY_CACHE

    保存查询返回的完整结果.当查询命中该缓存,MySQL会立即返回结果,跳过解析.优化和执行阶段. 官方在特定环境测试结果(官方文档中有详细说明): 1.如果对某表进行简单查询,但每次查询条件都不一样时, ...

  7. mysql查询为0的值_MySql查询整型字段空字符时出现为0的数据

    表结构: -- 表的ddl CREATE TABLE `user_desc` ( `ID` int(11) NOT NULL AUTO_INCREMENT, `USER_NAME` varchar(2 ...

  8. mysql查询特定时间数据视频_mysql查询特定时间段内的数据

    参照文章(mysql查询时间段内数据)进行了操作. 先来建表语句: [sql] view plaincopySETFOREIGN_KEY_CHECKS=0;-- ------------------- ...

  9. mysql表中有重复的元组_MySQL查询找到重复的元组并显示计数?

    要查找重复的元组,请使用GROUP BY HAVING子句.让我们首先创建一个表-mysql> create table DemoTable -> ( -> Id int, -> ...

最新文章

  1. st7789v tft 驱动电路_图解宁波博信出品的KEEWAY摩托车数字仪表盘,附测绘的电路图...
  2. [django]模板中自定义变量django模板中的变量
  3. 用户空间和内核空间通讯Netlink
  4. 关于JavaScript相关文章
  5. 容器源码解析之LinkedHashMap(九)
  6. java 网络编程 方式_JAVA网络编程
  7. telnet IP不通/sybase central工具无法连接到数据库
  8. iframe之间操作记录
  9. 【实施自动化测试项目】的7大必备条件!那些我踩过的坑......
  10. oracle dbms 存放位置,系统统计信息的保存位置
  11. Hadoop学习笔记一:单节点安装
  12. QT 实现 RTSP 视频流服务器
  13. 凡泰极客:远程办公,你礼貌吗?
  14. 微信小程序开发学习小结之tabBar组件
  15. 万字长文带你玩转2020全国大学生计算机技能应用大赛—C语言模考整理解析
  16. 《通往财富自由之路》学习笔记
  17. envato elements国外设计网站素材代服务包月包年VIP高速下载
  18. 数据结构精录总结Episode.6 数据结构入门之树(基于Visual C++)
  19. python将多个txt文件导入一个excel的不同sheet中
  20. 产品外观设计有哪些表面处理工艺

热门文章

  1. 【HTML】-案例-利用表格制作网页
  2. cesium建筑物3DTile单体化(cesium篇.24)
  3. Android项目实战(二十六):蓝牙连接硬件设备开发规范流程
  4. 如何一秒明白请求转发和重定向?
  5. 【高手分享:拼音/五笔输入法通用使用技巧】
  6. Linux命令之chown
  7. 深度学习 噪声抑制_使用深度学习抑制噪声
  8. 通达信精确逃顶主图指标
  9. 一文深刻解析UWB是什么技术?
  10. Git版本回退和撤销修改