0

我的查询是这样的

declare @searchWord varchar(100)
set @searchWord = 'carb9' 
declare @tableWord varchar(100)
set @tableWord = 'Racing Carb9 uretor'
--set @tableWord =  'carb9'

select 1 
where  @tableWord like '%[^a-z0-9]' + @searchWord + '[^a-z0-9]%'
or @tableWord like @searchWord + '[^a-z0-9]%'
or @tableWord like '%[^a-z0-9]' + @searchWord 

此查询在 @tableWord 是 'Racing Carb9 uretor' 时有效,但在 @tableword 只是 'carb9' 时无效。它应该在这两种情况下都有效。我做错了什么?

4

2 回答 2

2

@tableWord = @searchWord您可以在查询中添加条件。目前,对于这种情况,您的任何条件都不能返回 true

declare @searchWord varchar(100)
set @searchWord = 'carb9' 
declare @tableWord varchar(100)
set @tableWord = 'Racing Carb9 uretor'
--set @tableWord =  'carb9'

select 1 
where  @tableWord like '%[^a-z0-9]' + @searchWord + '[^a-z0-9]%'
or @tableWord like @searchWord + '[^a-z0-9]%'
or @tableWord like '%[^a-z0-9]' + @searchWord 
or @tableWord = @searchWord 
于 2013-08-08T04:41:46.903 回答
0

@tableWord='carb9' 不会匹配你的 where 子句的任何模式,

于 2013-08-08T04:41:26.717 回答