java 按拼音模糊搜索汉字_数据查询支持中文拼音首字母模糊检索
需求:在做软件的过程中,发现不少客户在做数据检索时,打汉字怕麻烦,也影响工作效率,要求在查询时,支持查询汉字的字母开头查询。
做到支持数据库拼音码查询,主要分一下几步实现:
1.在数据库中建立一个sys_spell_dict表,把常用的汉字与拼音字母做为对照信息存储到数据库中。下面以SQL server 2005数据库的SQL语言格式编写实现。
<1>.先创建sys_spell_dict表。
CREATE TABLE [dbo].[sys_spell_dict](
[id] [int] NOT NULL,
[char_code] [varchar](4) COLLATE Chinese_PRC_CI_AS NOT NULL,
[spell_code] [varchar](1) COLLATE Chinese_PRC_CI_AS NULL,
CONSTRAINT [PK_sys_spell_dict] PRIMARY KEY CLUSTERED
(
[char_code] ASC
)) ON [PRIMARY]
<2>.你需要从网上找到常用的字与拼音对照数据导入数据表中(以下仅简单示例,常用的字库对照6800左右,请自己收集)
id
char_code
spell_code
42
阿
A
41
啊
A
5975
锕
A
4576
嗄
G
45
哎
A
47
哀
A
46
唉
A
43
埃
A
44
挨
A
5995
锿
A
4415
捱
A
48
皑
A
49
癌
A
<3>.编写转换函数
CREATE FUNCTION [dbo].[getSpellCodeFun] (@in_char VARCHAR(100),@type VARCHAR(2))
RETURNS VARCHAR(100)
AS
BEGIN
declare @each_char varchar(10)
declare @each_py varchar(2)
declare @all_py varchar(100)
declare @r int
declare @all_len int
declare @rr int
declare @pyreturn varchar(100)
set @r=1
set @all_len=len(ltrim(rtrim(@in_char)))
set @all_py=''
while (@r<=@all_len)
begin
set @each_char=substring(@in_char,@r,1)
select @rr=count(*) from sys_spell where @each_char=char_code
if @rr>0
select @each_py=spell_code from sys_spell_dict where @each_char=char_code
else
begin
set @each_py=''
end
set @all_py=@all_py+isnull(@each_py,'')
set @r=@r+1
end
set @pyreturn= @all_py
return upper( @pyreturn )
END
<4>.中文转换拼音码测试
在查询分析器中,
select dbo.getSpellCodeFun('中华人民共和国','py')
将回返回‘ZHRMGHG’中文拼音首字母查询
<5>企业应用开发:1.你可以在写入数据时,把中文转成拼音码存入数据库中比如Spell字段中(处理程序需要另写)。
2.写查询语句时,利用dbo.getSpellCodeFun先转成拼音码匹配查询条件。
如人员表中有数据id
emp_code
emp_name
1
001
比尔
2
002
牛顿
你在写SQL时如此写即可
declare @py nvarchar(50)
set @py='BE'
select * from sys_emp where dbo.getSpellCodeFun(emp_name,'py') like '%'+@py+'%'
查询时将显示出中文拼音首字母为BE,即emp_name叫比尔的员工。
至此简单支持数据拼音首字母的示例就讲完了,如果你想做以XX拼音字母开头的查询,去掉@py前的'%'+即可。
java 按拼音模糊搜索汉字_数据查询支持中文拼音首字母模糊检索相关推荐
- mysq根据首字母模糊检索,拼音首字母模糊查询名称
Mysql 数据库根据拼音首字母模糊查询名称 前言 一.导入数据库 二.使用SQL进行查询 总结 前言 当我们的项目运行了一段时间,突然增加个需求,要按照内容标题的首字母进行查询时,这时我们只需导入一 ...
- python获取字符串首字母_[Python] Python 获取中文的首字母 和 全部拼音首字母
原博文 2019-07-08 04:18 − Python 获取中文的首字母 和 全部拼音首字母 代码如下: import pinyin def getStrAllAplha(str): return ...
- 让你的查询支持中文拼音码模糊查询。
需求:在做软件的过程中,发现不少客户在做数据检索时,打汉字怕麻烦,也影响工作效率,要求在查询时,支持查询汉字的字母开头查询. 做到支持数据库拼音码查询,主要分一下几步实现: 1.在数据库中建立一个sy ...
- mysql 汉字_让MySQL支持中文
这两天在学习webpy,把webpy的一个blog例子扒下来学习一下,默认创建的table当存入中文的时候是乱码,研究了一下这个问题. 1,创建table的时候就使用utf8编码 举个例子: 1 cr ...
- JAVA WEB 对返回数据进行按中文名称首字母A~Z升序排序
对数据按中文名称A~Z进行升序排序 Collections.sort(ListName, new Comparator<ModelClassName>() {Collator collat ...
- 通过拼音模糊搜索汉字的功能实现
一.原由 前一段时间用php实现通讯录系统,需要用到拼音查找汉字功能,匹配通讯录的姓名字段,于是在网上搜索已有的开源代码,下面总结和分析一下思路和具体实现. 二.思路 查找了网上的多种解决方案,大致分 ...
- java 拼音模糊查询_java实现首字母模糊查询的功能
①,要实现首字母模糊匹配,首先我们需要得到你要搜索内容的首字母,对于java来说,有一个非常实用的包:pinyin4j.jar. 这个拼音包中的PinyinHelper 方法可以得到String的首字 ...
- java 首字母检索_java实现首字母模糊查询的功能
①,要实现首字母模糊匹配,首先我们需要得到你要搜索内容的首字母,对于java来说,有一个非常实用的包:pinyin4j.jar. 这个拼音包中的PinyinHelper 方法可以得到String的首字 ...
- Oracle——根据拼音首字母模糊查询某个字段
前言 Oracle数据库模糊查询数据,可以用like关键字: 但是,业务上有时候需要根据拼音首字母模糊查询某个字段,这时候考虑的点就比较多了 问题解决 解决方法有3种: 1. 表中添加一个字段表示拼音 ...
- .net core通过PinYinConverterCore实现汉字转拼音,获取中文字符串首字母
文章目录 一.事故现场 二.解决方法 1.安装方法 2.代码示例 #中文转拼音 #获取中文字符串首字母 一.事故现场 项目之前使用的.net framework,可以通过引用 Microsoft.In ...
最新文章
- 如何用bat文件快速计算项目代码行数
- Linux-Shell 快捷键
- 公文字体字号标准2020_公文格式的数字顺口溜(收藏)
- 华硕h410csm怎么开启_主板BIOS中的launch CSM选项灰色无法更改的解决方法
- Sun Java认证
- 持有1000枚以上比特币的巨鲸地址数量有所下降
- Array.prototype.slice.call()如何工作?
- Android Studio - 如何更改Android SDK路径
- iphone中扫描wifi热点
- 电子技术课程设计—交通灯控制系统设计
- No certificate for team ‘‘ matching ‘iPhone Distribution: VOVA TECH LIMITED ()‘ Select a different s
- Vue3-歌词根据时间自动滚动
- Selenium 2.0的由来及设计架构
- libusb介绍及简单使用
- Oracle开发实战学习
- Ios王者微信抢先服务器,王者荣耀:iOS微信用户抢先体验!国服出装铭文,点击一键查看!...
- 系统学习Pytorch笔记三:Pytorch数据读取机制(DataLoader)与图像预处理模块(transforms)
- 梁漱溟:世界文化的未来,就是中国文化的复兴
- 武汉理工大学计算机考研排名2015,武汉理工大学和南京理工大学计算机研究生比较一下...
- img图片下面有间隙的6种解决方案