SQL-LIKE句
SQL LIKE句は、ワイルドカード演算子を使用して値を類似の値と比較するために使用されます。LIKE演算子と組み合わせて使用される2つのワイルドカードがあります。
- パーセント記号(%)
- アンダースコア(_)
パーセント記号は、0文字、1文字、または複数文字を表します。アンダースコアは、単一の数字または文字を表します。これらの記号は組み合わせて使用できます。
構文
%と_の基本的な構文は次のとおりです-
SELECT FROM table_name
WHERE column LIKE 'XXXX%'
or
SELECT FROM table_name
WHERE column LIKE '%XXXX%'
or
SELECT FROM table_name
WHERE column LIKE 'XXXX_'
or
SELECT FROM table_name
WHERE column LIKE '_XXXX'
or
SELECT FROM table_name
WHERE column LIKE '_XXXX_'
ANDまたはOR演算子を使用して、N個の条件を組み合わせることができます。ここで、XXXXは任意の数値または文字列値です。
例
次の表に、「%」演算子と「_」演算子を使用した異なるLIKE句を持つWHERE部分を示すいくつかの例を示します。
シニア番号 | ステートメントと説明 |
---|---|
1 | WHERE SALARY LIKE '200%' 200で始まる値を検索します。 |
2 | WHERE SALARY LIKE '%200%' 任意の位置に200がある値を検索します。 |
3 | WHERE SALARY LIKE '_00%' 2番目と3番目の位置に00がある値を検索します。 |
4 | WHERE SALARY LIKE '2_%_%' 2で始まり、長さが3文字以上の値を検索します。 |
5 | WHERE SALARY LIKE '%2' 2で終わる値を検索します。 |
6 | WHERE SALARY LIKE '_2%3' 2番目の位置に2があり、3で終わる値を検索します。 |
7 | WHERE SALARY LIKE '2___3' 2で始まり3で終わる5桁の数字の値を検索します。 |
実際の例を見てみましょう。以下に示すようなレコードを持つCUSTOMERSテーブルについて考えてみます。
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
| 6 | Komal | 22 | MP | 4500.00 |
| 7 | Muffy | 24 | Indore | 10000.00 |
+----+----------+-----+-----------+----------+
以下は、SALARYが200で始まるCUSTOMERSテーブルのすべてのレコードを表示する例です。
SQL> SELECT * FROM CUSTOMERS
WHERE SALARY LIKE '200%';
これにより、次の結果が生成されます-
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
+----+----------+-----+-----------+----------+