需求:在做软件的过程中,发现不少客户在做数据检索时,打汉字怕麻烦,也影响工作效率,要求在查询时,支持查询汉字的字母开头查询。
做到支持数据库拼音码查询,主要分一下几步实现:
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前的'%'+即可。
分享到:
相关推荐
在中文环境中,为了方便用户根据汉字的拼音首字母进行快速查找,这种查询方式尤其有用。Oracle数据库虽然原生支持英文字符集,但通过特定的方法,也可以处理中文字符集并实现拼音查询功能。以下将详细阐述这一主题。...
"改写下jquery.searchableSelect.js 支持汉字模糊查询"这个主题,就是关于如何优化一个JavaScript插件,使其能更好地适应中文环境,提升用户在下拉框中搜索汉字的效率。 `jquery.searchableSelect.js`是一个jQuery...
在IT领域,拼音首码和五笔首码是汉字输入法中的关键技术,它们与数据库的结合使用能够提高数据处理和搜索效率。本文将详细讲解这两个概念及其在数据库环境中的应用。 拼音首码是基于汉语拼音的简写形式,通常用于...
在本案例中,我们关注的是NSPredicate在实现模糊搜索,特别是支持中文、数字和字母方面的应用。模糊搜索允许用户输入不完全或部分关键词,系统就能找到匹配的记录,提高了用户体验。 首先,让我们理解NSPredicate的...
在MySQL中实现中文汉字转拼音的功能,主要是为了方便在数据库查询和数据分析时处理中文文本,尤其是在没有全文索引或者需要进行复杂模糊匹配时。以下是一个简单的实现方法,它利用自定义函数来完成这一任务。 首先...
总结来说,实现“仿携程网城市输入框,支持中文/拼音/3字码 输入的智能提示”涉及到的技术点包括:前端交互设计、HTML/CSS基础、JavaScript事件处理、数据匹配算法、中文转拼音处理、三字码查询、异步通信(AJAX)、...
1. **拼音码转换**:在处理中文文本时,将汉字转换为拼音是常见的需求,例如在搜索引擎中进行模糊匹配,或者在数据分析时进行文本预处理。 2. **PowerBuilder**:这是一种面向对象的编程语言,常用于开发企业级应用...
在多语言支持的网站或应用中,为了提高用户体验和搜索效率,开发者往往需要将用户输入的汉字实时转换为拼音,这不仅有助于非中文母语使用者的理解,还能增强搜索功能的灵活性。例如,在一个中文图书管理系统中,通过...
这个库能够高效地将中文字符串转化为对应的拼音表示,使得开发者无需深入了解汉字与拼音之间的复杂关系,也能轻松实现这一功能。 首先,我们要理解汉字转拼音的基本原理。在计算机处理汉字时,通常会使用Unicode...
Mysql 汉字转拼音首字母,使用方式: 运行后生成一个表 一个函数 ,SELECT getPY("龍的传人");查询结果为LDCR。 不支持多音字。
在Android平台上,有时候我们需要将汉字转换为对应的拼音,例如在搜索功能中实现模糊匹配,或者在用户输入时提供拼音首字母导航。这个“android汉字转拼音”项目正是为了解决这样的需求。它基于Android 4.2的源码...
在数据库操作中,尤其是处理中文数据时,T-SQL(Transact-SQL)作为一种强大的查询语言,提供了丰富的功能来支持各种数据处理需求。本文将详细介绍一个用于T-SQL环境中的拼音汉字对照表的实现原理及应用,帮助读者更...
将军码输入法是一款集形码输入(拆字读音取声母)和拼音输入一体的高度智能化输入法平台。 将军码输入法支持: ...使用这款输入法可以做到拼音不翻页,不会拼音也会打字,使你充分享受汉字输入的乐趣!
此程序的核心功能是将中文字符转换为对应的拼音,并且支持在数据库中进行模糊查询,以便用户可以利用拼音进行关键词搜索。下面我们将详细探讨这个项目的组成部分、实现原理以及涉及到的关键技术。 首先,C#是一种由...
同时,为了确保拼音匹配的准确性,可能需要使用到第三方的拼音库,例如pinyin-js或zhon.hanzi,它们可以将汉字转换成拼音,从而实现模糊匹配。 在实际应用中,为了使这两者完美结合,你需要在HTML中正确地引入...
3. 拼音模糊搜索:支持声母、韵母的模糊匹配,即使输入部分拼音也能找到对应的汉字。 4. 五笔反查:用户输入五笔编码,软件能显示出对应的汉字,方便检查和确认。 5. 学习模式:为用户提供汉字、拼音、五笔码的学习...
全面继承了各种拼音输入法的长处。它支持全拼、双拼、简拼、声母拼词、立即造词、频度调整、模糊音设置等;支持微软视窗全系列操作...而且你再也不会被念不出来的字难住了,你用笔画输入汉字,它还会提示你如何发音。
全面继承了各种拼音输入法的长处,支持全拼、双拼、简拼、声母拼词、立即造词、频度调整、模糊音设置等;支持 GBK 大字符集;无需切换,直接混合输入中英文;还精心设计的三重码技术,辅以左右 Shift 键选择重码,...
拼音加加输入法支持全拼、双拼、简拼、声母拼词、立即造词、频度调整、模糊音设置等;支持微软视窗全系列操作系统;支持 GBK 大字符集;无需切换,直接混合输入中英文;还精心设计的三重码技术,辅以左右 Shift 键...
在IT行业中,尤其是在前端开发领域,常常需要处理与汉字和拼音相关的任务。标题"根据键盘输入,获取汉字助记码,全拼等"所描述的功能是实现一个系统或工具,能够根据用户通过键盘输入的汉字,实时提供该汉字的助记码...