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 に答える