SQL 分割匹配
CREATE PROCEDURE proc_keyword @content nvarchar(max) as begin declare @SplitName nvarchar(max) declare @SubName nvarchar(max) declare @Split nvarchar(10) declare @CustomerWord nvarchar(max) declare @Id int declare @Ids nvarchar(max) declare @tsql nvarchar(max) set @CustomerWord=@content set @Split=',' set @Ids='' begin DECLARE cur CURSOR FOR SELECT ID,[NewName] from dbo.lampon_News OPEN cur FETCH NEXT FROM cur into @Id,@SplitName WHILE @@FETCH_STATUS = 0 begin while(CHARINDEX(@Split,@SplitName)>0) begin SELECT @SubName = LTRIM(RTRIM(SUBSTRING(@SplitName,1,CHARINDEX(@Split,@SplitName )-1))) if (CHARINDEX(@SubName,@CustomerWord)>0) begin set @Ids=@Ids+cast(@Id as nvarchar(max))+',' break end else begin set @SplitName=SUBSTRING(@SplitName ,CHARINDEX(@Split,@SplitName ) + 1,LEN(@SplitName)) end end if (CHARINDEX(@SplitName,@CustomerWord)>0) begin set @Ids=@Ids+cast(@Id as nvarchar(max))+',' end FETCH NEXT FROM cur into @Id,@SplitName end Close cur DEALLOCATE cur if (LEN(@Ids)=0) begin set @tsql=' select * from dbo.lampon_News where ID =null'; end else begin set @Ids=SUBSTRING(@Ids,1,LEN(@ids)-1) set @tsql=' select * from dbo.lampon_News where ID in('+@Ids+')'; end print @tsql EXEC(@tsql) end end execute proc_keyword '你好'