SQL Like – SQL Not LikeSQLのような – SQLのようでない
SQLのLIKEは、WHERE句と一緒に使用して、列のパターンを検索するために使用されます。ワイルドカードは、パターンを指定するために使用されます。LIKE演算子と一緒に使用されるワイルドカードは2つあります。
-
- %:パーセンテージは、単一、複数、または出現しないことを示すために使用されます。
- _:アンダースコアは、単一の文字を表すために使用されます。
SQLのような構文
SQLのLIKE演算子は、WHERE句を使用する任意のクエリと組み合わせて使用することができます。そのため、SELECT、DELETE、UPDATEなどと組み合わせて使用することができます。
SELECT column FROM table_name WHERE column LIKE pattern;
UPDATE table_name SET column=value WHERE column LIKE pattern;
DELETE FROM table_name WHERE column LIKE pattern;
上記で言及されているSQLのような構文では、”パターン”はワイルドカードの使用によって定義されるものです。
SQLのLIKEの例
以下の顧客テーブルを例に、ワイルドカードとともにSQLのLIKE文の使用方法を例で理解してみましょう。
CustomerId | CustomerName |
---|---|
1 | Amit |
2 | John |
3 | Annie |
-
- 「A」で始まる顧客名を見つける。
-
- 顧客テーブルからCustomerName列を選択する WHERE CustomerName LIKE ‘A%’;
出力:Amit、Annie
「e」で終わる顧客名を見つける。
顧客テーブルからCustomerName列を選択する WHERE CustomerName LIKE ‘%e’
出力:Annie
「A」で始まり「t」で終わる顧客名を見つける。
顧客テーブルからCustomerName列を選択する WHERE CustomerName LIKE ‘A%t’
出力:Amit
どの位置でも「n」を含む顧客名を見つける。
顧客テーブルからCustomerName列を選択する WHERE CustomerName LIKE ‘%n%’
出力:Annie John
2番目の位置に「n」を含む顧客名を見つける。
顧客テーブルからCustomerName列を選択する WHERE CustomerName LIKE ‘_n%’
出力:Annie
3番目の位置に「i」を含み「t」で終わる顧客名を見つける。
顧客テーブルからCustomerName列を選択する WHERE CustomerName LIKE ‘__i%t’
出力:Amit
SQL Not Like を日本語で言い換えると:
SQL ライクではない
時には、私たちはパターンに一致しないレコードを取得したいと思うことがあります。その場合、SQLのnot like演算子を使用することができます。SQLのnot like文の構文は以下のようになります。
SELECT column FROM table_name WHERE column NOT LIKE pattern;
UPDATE table_name SET column=value WHERE column NOT LIKE pattern;
DELETE FROM table_name WHERE column NOT LIKE pattern;
例えば、’A’で始まらない顧客の名前のリストが欲しいとします。以下のクエリは、必要な結果セットを提供してくれます。
SELECT CustomerName FROM Customer WHERE CustomerName NOT LIKE 'A%';
出力:ジョン
SQLで複数のLike条件
SQLクエリでは、複数の「like」ステートメントを使用することができます。たとえば、顧客名が「Jo」から始まり、「Am」でも始まる顧客名のリストを取得したい場合、以下のように複数の「like」ステートメントを使用する必要があります。
SELECT CustomerName FROM Customer WHERE CustomerName LIKE 'Am%' OR CustomerName LIKE 'Jo%';
SQLのような演算子とSQLのnot like演算子の例に関しては、以上です。