2016-06-27 6 views
0

最後に%で終わるすべての名前を取得する必要があります。どのようにクエリが動作するか、任意の名前を選択%

私のクエリは機能していますが、方法がわからない: - 私はこのクエリの動作と違い方法を知っている可能性があり

1. select name from table where name like '%\%%' 

2. select name from table where name like '%%\%' 

?バックスラッシュの位置は重要ではない、どのように?

助けてください。 - あなたがについて混乱していることは、ワイルドカードとして%ある

+1

最初のものは、任意の位置に '%'を持っている人々を見つけるでしょう。二番目は '%'で終わる人々を見つけるでしょう。あなたの頭を囲むには、 '/%'を '%、%'と '%% 'のような他の文字に変更してください。あなたは、2番目のものがブートするために冗長 '% 'を持っていることがわかります。 – JNevill

答えて

3

。任意の数の文字と一致させることができます。

だから、あなたがしたい:

where name like '%\%' 

2つのワイルドカード(%%)は1と同じです。最初のバージョンは、文字列の中央にある%と一致します。

か、あるいは:

where right(name, 1) = '%' -- less confusing 
+0

ありがとう、私は '%\%'のような名前を与えてもいいですか?なぜ '%% \%'が使われたのですか? – youv

+0

@youv。 。 。スラッシュは 'like'のデフォルトのエスケープ文字であるため、'% 'は'% 'と一致し、ワイルドカードではありません。 –

関連する問題