|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
有的时候,一些缺失的功能可以通过别的办法来实现,例如,在MySQL4.1以前,你可以通过使用join方法来替代子查询的功能。在MySQL5.0中,大多数关系型数据库所要求的功能已经都具备。汉字
依据汉字声母,要在表中找相干纪录,怎样完成?好比输出"zgyh",就可以找到一切“中国银行”的纪录。
ifexists(select*fromdbo.sysobjectswhereid=object_id(N[dbo].[f_GetPy])andxtypein(NFN,NIF,NTF))
dropfunction[dbo].[f_GetPy]
GO
--创立取拼音函数
createfunctionf_GetPy(@Strnvarchar(400))
returnsnvarchar(4000)
as
begin
declare@strlenint,@renvarchar(4000)
declare@ttable(chrnchar(1)collateChinese_PRC_CI_AS,letternchar(1))
insert@tselect吖,Aunionallselect八,B
unionallselect嚓,Cunionallselect,D
unionallselect,Eunionallselect发,F
unionallselect旮,Gunionallselect铪,H
unionallselect丌,Junionallselect咔,K
unionallselect垃,Lunionallselect`,M
unionallselect,Nunionallselect噢,O
unionallselectr,Punionallselect七,Q
unionallselect,Runionallselect仨,S
unionallselect他,Tunionallselect,W
unionallselect夕,Xunionallselect丫,Y
unionallselect,Z
select@strlen=len(@str),@re=
while@strlen>0
begin
selecttop1@re=letter+@re,@strlen=@strlen-1
from@tawherechr<=substring(@str,@strlen,1)
orderbychrdesc
if@@rowcount=0
select@re=substring(@str,@strlen,1)+@re,@strlen=@strlen-1
end
return(@re)
end
go
--测试
selectdbo.f_GetPy(东莞市)as东莞市,dbo.f_GetPy(ab中c国人)as中国人
--今后查询的时分,就能够挪用下面的函数来完成汉字含混查询
select*from表wheredbo.f_getpy(字段)=zgyh
索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存。如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录。 |
|