2017-03-20 16 views
1

私はこのために正規表現の助けが必要ですSQL正規表現の単語内にはありません

私はテーブルの中に "john"という単語を探しています。簡単なクエリから始めます。

select * from tblA where Line like '%john%' 

これはOKです。しかし、私は "VarJohnA"、または "WowJohnCool"のような結果を持っています。私が特に探しているのは、もっと似ています。例えば、

1. 'John ' (begins with J ends with white space) 
2. ' John ' (begins with white space ends with white space) 
3. 'John,' (begins with J ends with comma) 
4. ',john,' (begins with comma ends with comma) 
5. ' John,' (begins with white space ends with comma) 

次のようなSQLを書くことをお勧めします。

select * from tblA where Line like '% john %' 
or Line like 'john %' 
or Line like '%john,%' 
or Line like '%,john,%' 
or Line like '% john,%' 

しかし、これではありません私は上記5弾は、私は考えることができるものであるので、探しています、そこに多分

'"John"' 

または

'"John' 

または

無数の
'<John' 
'=John' 
'=John+' 

他に何がわかっていますか。

私が探していたより正確な結果は、基本的には考えていました。私は "ジョン"を見つけたいが、 "ジョン"はa-zの中にいない。 ので、正規表現は

select * from tblA where line not like '[a-z]John[a-z]' 

または

select * from tblA where line not like '%[^a-z]John[^a-z]%' 

ようなものになるだろうが、どれも機能しません。

しかし要するに、私は "John"という単語を探していますが、それはジョンの間ではいけません。

はあなたにこのことについて

答えて

0

どのように感謝助言してください?

where ' ' + replace(Line, ',', ' ') + ' ' like '% john %' 

あるいは、一般的には非文字用:

where ' ' + Line + ' ' like '%[^a-zA-Z]john[^a-zA-Z]%' 
+0

秒1で動作します。私は今混乱している、私はそれが "好き"の代わりに "好きではない"と思うだろうか? – BobNoobGuy

+0

@BobNoobGuy。 。 。私はあなたの混乱を理解していません。目標は列に「ジョン」を見つけることです。 –

関連する問題