求助高手:输入汉字能查询出来,输入每个字拼音首字母也能查询出来的模糊查询。

时间:2022-08-14 08:04:52
有个文本框,输入汉字能查询出来,输入每个汉字拼音首字母也能查询出来的模糊查询。
希望有代码参考!急用啊,谢谢:急用本人QQ:284363158

12 个解决方案

#1


http://www.cnblogs.com/anjou/archive/2007/09/29/911273.html

#2


那你要有一个数据字典了

#3


后台挂数据库的话我做过, 做数据库设置一列拼音,一列汉字, 写个存储过程查询,把查询内容做为参数, 存储过程判断一下,如果输入的是字段则在拼音列中查询, 如果是汉字,则在汉字列中查询。 

CREATE PROC SP_QUERY
@pDESC  varchar(120)
AS 
 
 DECLARE 
@pSTR  varchar(4),
@pSPSP_IND  varchar(4)

 SET pDESC=UPPER(@pDESC) 
 SET @pSTR=SUBSTRING(LTRIM(RTRIM(@pDESC)),2,1)
 
 IF @pSTR BETWEEN 'A' AND 'Z' AND LEN(LTRIM(RTRIM(pDESC)))>=3
SET @pSPSP_IND='PY'
 ELSE IF @pSTR NOT BETWEEN 'A' AND 'Z' 
SET @pSPSP_IND='CH'

SELECT * FROM TABLE
WHERE 
(汉字列名 LIKE '%' + @pDESC +'%' AND @pSPSP_IND='CH') OR
(拼音列名 LIKE '%' + @pDESC +'%' AND @pSPSP_IND='PY') 

#4


生成一个字段放拼音,然后用like吧

#5


在数据库中可以通过编码找到 汉字对应的首字母  再进行查询 

#6


通过汉字得到首字母 .

http://blog.csdn.net/keenweiwei/article/details/6846646

#7


这个要有字库才行。

#8


[Quote=引用 7 楼 cjh200102 的回复:]
这个要有字库才行。


我有个拼音字库,怎么用?  就跟字典差不多,请教!

#9


[Quote=引用 3 楼 jevin8011 的回复:]
后台挂数据库的话我做过, 做数据库设置一列拼音,一列汉字, 写个存储过程查询,把查询内容做为参数, 存储过程判断一下,如果输入的是字段则在拼音列中查询, 如果是汉字,则在汉字列中查询。 


不想用拼音字段,如果这样有人不会拼音,录入库里的时候怎么办

#10


[Quote=引用 2 楼 falconfei 的回复:]
那你要有一个数据字典了
   
有个拼音库

#11


mark下 其实我也想问这个 之前要做一个类似的东西就这里难住了
其实 可以做数据库来2个列 一列存汉字 一列存拼音

#12


引用 9 楼 lixiang913 的回复:
[Quote=引用 3 楼 jevin8011 的回复:]
后台挂数据库的话我做过, 做数据库设置一列拼音,一列汉字, 写个存储过程查询,把查询内容做为参数, 存储过程判断一下,如果输入的是字段则在拼音列中查询, 如果是汉字,则在汉字列中查询。 


不想用拼音字段,如果这样有人不会拼音,录入库里的时候怎么办


拼音不用录入, 找个拼音表, SQL写个函数,插入数据的时候调用方法可以自动把汉字拼音拼出来,
需要了可以找我, qq : 920851350

#1


http://www.cnblogs.com/anjou/archive/2007/09/29/911273.html

#2


那你要有一个数据字典了

#3


后台挂数据库的话我做过, 做数据库设置一列拼音,一列汉字, 写个存储过程查询,把查询内容做为参数, 存储过程判断一下,如果输入的是字段则在拼音列中查询, 如果是汉字,则在汉字列中查询。 

CREATE PROC SP_QUERY
@pDESC  varchar(120)
AS 
 
 DECLARE 
@pSTR  varchar(4),
@pSPSP_IND  varchar(4)

 SET pDESC=UPPER(@pDESC) 
 SET @pSTR=SUBSTRING(LTRIM(RTRIM(@pDESC)),2,1)
 
 IF @pSTR BETWEEN 'A' AND 'Z' AND LEN(LTRIM(RTRIM(pDESC)))>=3
SET @pSPSP_IND='PY'
 ELSE IF @pSTR NOT BETWEEN 'A' AND 'Z' 
SET @pSPSP_IND='CH'

SELECT * FROM TABLE
WHERE 
(汉字列名 LIKE '%' + @pDESC +'%' AND @pSPSP_IND='CH') OR
(拼音列名 LIKE '%' + @pDESC +'%' AND @pSPSP_IND='PY') 

#4


生成一个字段放拼音,然后用like吧

#5


在数据库中可以通过编码找到 汉字对应的首字母  再进行查询 

#6


通过汉字得到首字母 .

http://blog.csdn.net/keenweiwei/article/details/6846646

#7


这个要有字库才行。

#8


[Quote=引用 7 楼 cjh200102 的回复:]
这个要有字库才行。


我有个拼音字库,怎么用?  就跟字典差不多,请教!

#9


[Quote=引用 3 楼 jevin8011 的回复:]
后台挂数据库的话我做过, 做数据库设置一列拼音,一列汉字, 写个存储过程查询,把查询内容做为参数, 存储过程判断一下,如果输入的是字段则在拼音列中查询, 如果是汉字,则在汉字列中查询。 


不想用拼音字段,如果这样有人不会拼音,录入库里的时候怎么办

#10


[Quote=引用 2 楼 falconfei 的回复:]
那你要有一个数据字典了
   
有个拼音库

#11


mark下 其实我也想问这个 之前要做一个类似的东西就这里难住了
其实 可以做数据库来2个列 一列存汉字 一列存拼音

#12


引用 9 楼 lixiang913 的回复:
[Quote=引用 3 楼 jevin8011 的回复:]
后台挂数据库的话我做过, 做数据库设置一列拼音,一列汉字, 写个存储过程查询,把查询内容做为参数, 存储过程判断一下,如果输入的是字段则在拼音列中查询, 如果是汉字,则在汉字列中查询。 


不想用拼音字段,如果这样有人不会拼音,录入库里的时候怎么办


拼音不用录入, 找个拼音表, SQL写个函数,插入数据的时候调用方法可以自动把汉字拼音拼出来,
需要了可以找我, qq : 920851350