2009-04-03 10 views
2

私は、文字列が&であるテキストを含む列Cを持つテーブルTを持っていますが、次のクエリを実行すると、10行ありますが何も返しません。tsql contains関数で&(アンパサンド)をどのように検索しますか?

SELECT * FROM T WHERE Contains(C, 'a&b') 
+0

あなたは&を探していると言いますが、&bを探します。 – JohnIdol

+0

私はこの場合文字列aとbを探していましたが、何らかの理由で&を持っていれば何も返しません。 – Xaisoft

答えて

2

使って検索用語にする二重引用符:

SELECT * 
FROM T 
WHERE CONTAINS(C, '"a&b"') 

は、そうでなければあなたがとbを持っているものを探しています。

1

containsの代わりにLIKEを使用できますか?

SELECT * FROM T WHERE C LIKE '%a&b%' 
2

代わりのように使用:

SELECT * FROM T WHERE C like '%&%' 

あなたは& B

1
を検索する必要がある場合、あなただけの&

または

SELECT * FROM T WHERE C like '%a&b%' 

を探しているなら

&とその他の英数字以外の文字を_で置き換える列のコピーを作成します。それから私はこれを行うことができます。

SELECT * FROM T WHERE Contains(C_searchable, 'a_b') 
+0

したがって、&contains _は自動的に変更されません。 – Xaisoft

+0

いいえ、&はワードブレーカとして扱います。それは "a&b"を "a b"と同じように扱います。 –

関連する問題