問題:
指定された文字グループの1つで始まる文字列を含む行を選択します。
例:
私たちのデータベースには、gamer
という名前のテーブルがあります id
のデータ およびuser
列。
id | ユーザー |
---|---|
1 | スーパーマン |
2 | マグナス |
3 | ルーシー |
4 | スタン |
5 | ali |
ユーザー名が「a」、「b」、「r」、または「s」で始まるゲーマーのすべてのデータを見つけましょう。
解決策:
SELECT id, user FROM gamer WHERE user LIKE '[abrs]%';
結果は次のとおりです。
id | ユーザー |
---|---|
1 | スーパーマン |
4 | スタン |
5 | ali |
ディスカッション:
特定のパターンに一致する文字列を含む行をフィルタリングする場合は、LIKE演算子でWHERE句を使用します。 WHERE句は、指定された条件を満たすレコードをフィルタリングするために使用されます。 WHEREの後に、列名または式を追加し、その後に演算子(LIKEなど)と比較値を追加します。 LIKEの後に、一致するパターンを入力します(この例では、WHERE user LIKE '[abrs]%'
)。パターンには、文字とワイルドカードを含めることができます。
T-SQLのワイルドカードの1つは「%」です。これは0個以上の不明な文字を表します。アンダースコアのワイルドカード(_)は1文字を示します。角かっこ([])は、一致するパターンを囲みます。このパターンには、1つ以上の文字または数字を含めることができます。ターゲット文字列は、角かっこ内の1つ以上の文字と一致する可能性があります。
この例では、パターン'[abrs]%'
ユーザー名がa、b、r、またはsのいずれかで始まる必要があることを示します。 %ワイルドカードを使用したため、開始文字の後に0個以上の文字が存在する可能性があります。
id =2のユーザー およびid=3 表示されません。名前は「l」と「m」で始まるため、選択したパターンと一致しません。