当前位置:Gxlcms > mysql > SqlServer2005中查询用分隔符分割的内容中是否包含其中一个内

SqlServer2005中查询用分隔符分割的内容中是否包含其中一个内

时间:2021-07-01 10:21:17 帮助过:6人阅读

Sql Server 2005中查询用分隔符分割的内容中是否包含其中一个内容,多个朋友给予的参考。

今天做项目遇到一个问题,

有产品分类A,B,C顶级分类,

期中A下面有a1,a2,a3子分类.

但是a1可能共同属于A和B,然后我的数据库是这样设计的

如果想要查询A的所有子类的话就要查询parent中包含1的,所以就萌生了这个办法.呵呵,

暂时没什么好办法,欢迎拍砖~~

另外,这个东西我想弄成bool返回值的,哪位兄弟会的希望帮忙解决一下....
代码如下:

  1. <br>SET ANSI_NULLS ON <br>GO <br>SET QUOTED_IDENTIFIER ON <br>GO <br>/* <br>-- ============================================= <br>-- Author: <饭饭> <br>-- Create date: <2011-10-19> <br>-- Description: <查询分隔符分割的数据是否包含某项> <br>-- ============================================= <br>*/ <br>ALTER Function [dbo].[HasKey](@DataStr varchar(100),@key varchar(8)) <br>returns int <br>as <br>begin <br>declare @return_str varchar(50) <br>declare @isok bit <br>declare @posi int <br>set @isok = 0 <br>--set @DataStr = 'a,aaaa,aaaddd,ffass' <br>--set @key = 'aaaa' <br>set @DataStr = @DataStr+',' <br>while len(@DataStr) > 0 and @isok=0 <br>begin <br>set @posi= charindex(',',@DataStr) <br>set @return_str = replace(substring(@DataStr,1,charindex(',',@DataStr)),',','') <br>set @DataStr = substring(@DataStr,@posi+1,len(@DataStr)) <br>if(@return_str=@key) <br>begin <br>set @isok=1 <br>break <br>end <br>end <br>return @isok <br>end <br>GO

人气教程排行