tsql Pattern [^ a-z]找到aa

时间:2013-04-03 12:39:47

标签: tsql design-patterns sql-like

我正在尝试使用网址

过滤掉列中的“非法”字符

我试过

select seourl from products where seourl like '%[^0-9a-z&;/_.?,!%-]%';

但我有很多看似好的网址被选为非法网站。 所以我尝试了这个以获得更多的调试信息:

declare @p nvarchar(40)='%[^0-9a-z&;/_.?,!%-]%';

select substring(seourl,patindex(@p,seourl),2) s,
patindex(@p,seourl) n,
seourl from products where 
seourl like @p

它显示我对包含'aa'的字符串进行了点击,如下所示:

AA  1  AA_Batteri__-_Mignon__1,5_v/1_stk
aa  2  Haarboerste

可能是因为整理是Danish_Norwegian_CI_AS,其中aa是像å,& aring那样的alfabetiti; ?

1 个答案:

答案 0 :(得分:1)

肯定是。

通过改变整理,我不再得到误报:

declare @p nvarchar(40)='%[^0-9a-z&;/_.?,!%-]%';

select seourl from t_produkter where 
CAST(seourl COLLATE SQL_Latin1_General_CP1_CI_AS as varchar(255)) like @p