今天做项目遇到一个问题,
期中A下面有a1,a2,a3子分类.
但是a1可能共同属于A和B,然后我的数据库是这样设计的
id | name | parnet |
如果想要查询A的所有子类的话就要查询parent中包含1的,所以就萌生了这个办法.呵呵,
暂时没什么好办法,欢迎拍砖~~
另外,这个东西我想弄成bool返回值的,哪位兄弟会的希望帮忙解决一下....@H_403_45@
代码如下:
5026"> @H_403_45@SET ANSI_NULLS ON @H_403_45@GO @H_403_45@SET QUOTED_IDENTIFIER ON @H_403_45@GO @H_403_45@/* @H_403_45@-- ============================================= @H_403_45@-- Author: <饭饭> @H_403_45@-- Create date: <2011-10-19> @H_403_45@-- Description: <查询分隔符分割的数据是否包含某项> @H_403_45@-- ============================================= @H_403_45@*/ @H_403_45@ALTER Function [dbo].[HasKey](@DataStr varchar(100),@key varchar(8)) @H_403_45@returns int @H_403_45@as @H_403_45@begin @H_403_45@declare @return_str varchar(50) @H_403_45@declare @isok bit @H_403_45@declare @posi int @H_403_45@set @isok = 0 @H_403_45@--set @DataStr = 'a,aaaa,aaaddd,ffass' @H_403_45@--set @key = 'aaaa' @H_403_45@set @DataStr = @DataStr+',' @H_403_45@while len(@DataStr) > 0 and @isok=0 @H_403_45@begin @H_403_45@set @posi= charindex(',',@DataStr) @H_403_45@set @return_str = replace(substring(@DataStr,1,charindex(',@DataStr)),'') @H_403_45@set @DataStr = substring(@DataStr,@posi+1,len(@DataStr)) @H_403_45@if(@return_str=@key) @H_403_45@begin @H_403_45@set @isok=1 @H_403_45@break @H_403_45@end @H_403_45@end @H_403_45@return @isok @H_403_45@end @H_403_45@GO @H_403_45@