PostgreSQL の LIKE、Not Like、ワイルドカード (%、_) の例


PostgreSQL の LIKE 演算子は、ワイルドカードを使用してテキスト値をパターンと照合するのに役立ちます。 検索式をパターン式と一致させることができます。

一致する場合、LIKE 演算子は true を返します。 LIKE 演算子を使用すると、SELECT、UPDATE、INSERT、または DELETE ステートメントの WHERE 句でワイルドカードを使用できます。

ワイルドカード

一緒に使用できるワイルドカードは XNUMX つだけです

  • パーセント記号 (%)
  • アンダースコア(_)

パーセント記号 (%) は、XNUMX、XNUMX、または複数の文字または数値を表すために使用されます。

アンダースコア ワイルドカード (_) は、XNUMX つの文字または数字を表すために使用されます。 これらの記号は組み合わせることもできます。 LIKE 演算子がこれら XNUMX つの記号と一緒に使用されない場合、等号演算子と同様に動作します。

構文

LIKE 演算子の構文は次のとおりです。

expression LIKE pattern [ ESCAPE 'escape-character' ]

式は列やフィールドのような文字式です。

パターンはパターンマッチングによる文字表現です。

エスケープ文字はオプションのパラメータです。 これにより、% や _ などのワイルドカード文字のリテラル インスタンスをテストできます。 指定しない場合は、\ がエスケープ文字として使用されます。

%ワイルドカードの使用

前に述べたように、% 記号は XNUMX、XNUMX つ以上の文字または数字に一致します。 以下を検討してくださいwing テーブル:

本:

%ワイルドカードの使用

「Lear…」のような名前の本でその結果を得たい場合は、次のコマンドを実行します。wing コマンド:

SELECT *
FROM
   Book
WHERE
   name LIKE 'Lear%';

これにより、次のものが返されますwing:

%ワイルドカードの使用

本が見つかりました。

その名前で「by」の本を検索してみましょう。

SELECT *
FROM
   Book
WHERE
   name LIKE '%by%';

これにより、次のものが返されますwing:

%ワイルドカードの使用

_ ワイルドカードの使用

前に述べたように、_ 記号は XNUMX つの文字または数字を表します。 以下に示すように使用できます。

SELECT *
FROM
   Book
WHERE
   name LIKE '_earn%';

これは以下を返しますwing:

_ ワイルドカードの使用

次に別の例を示します。

SELECT *
FROM
   Book
WHERE
   name LIKE '%Beginner_';

これは以下を返しますwing:

_ ワイルドカードの使用

NOT 演算子の使用

LIKE 演算子を NOT 演算子と組み合わせると、検索パターンに一致しない行が返されます。 たとえば、名前が「post」で始まらない本を表示するには、次のコマンドを実行します。wing コマンド:

SELECT *
FROM
   Book
WHERE
  name NOT LIKE 'Post%';

これは以下を返しますwing:

NOT 演算子の使用

検索条件に一致したのは XNUMX 冊だけでした。 「Made」という単語を含まない本の名前のリストを見てみましょう。

SELECT *
FROM
   Book
WHERE
  name NOT LIKE '%Made%';

これは以下を返しますwing:

NOT 演算子の使用

検索条件に一致した行が 3 件ありました。

pgAdminの使用

次に、pgAdmin を使用してアクションを実行する方法を見てみましょう。

%ワイルドカードの使用

ステップ1) pgAdmin アカウントにログインします。

ステップ2)

  1. 左側のナビゲーション バーで、[データベース] をクリックします。
  2. 「デモ」をクリックします。

% ワイルドカードを使用した pgAdmin の使用

ステップ3) クエリ エディターにクエリを入力します。

SELECT *
FROM
   Book
WHERE
   name LIKE 'Lear%';

ステップ4) 「実行」ボタンをクリックします。

% ワイルドカードを使用した pgAdmin の使用

それは以下を返すはずですwing:

% ワイルドカードを使用した pgAdmin の使用

「by」という名前の本を検索するには:

ステップ1) 次のように入力しますwing クエリエディターのコマンド:

SELECT *
FROM
   Book
WHERE
   name LIKE '%by%';

ステップ2) 「実行」ボタンをクリックします。

% ワイルドカードを使用した pgAdmin の使用

それは以下を返すはずですwing:

% ワイルドカードを使用した pgAdmin の使用

_ ワイルドカードの使用

ステップ1) pgAdmin アカウントにログインします。

ステップ2)

  1. 左側のナビゲーション バーで、[データベース] をクリックします。
  2. 「デモ」をクリックします。

_ ワイルドカードを使用した pgAdmin の使用

ステップ3) クエリ エディターにクエリを入力します。

SELECT *
FROM
   Book
WHERE
   name LIKE '_earn%';

ステップ4) 「実行」ボタンをクリックします。

_ ワイルドカードを使用した pgAdmin の使用

それは以下を返すはずですwing:

_ ワイルドカードを使用した pgAdmin の使用

ステップ5) XNUMX 番目の例を実行するには:

  1. 次のように入力しますwing クエリエディターでクエリを実行します。
    SELECT *
    FROM
       Book
    WHERE
       name LIKE '%Beginner_';
    
  2. 「実行」ボタンをクリックします。

_ ワイルドカードを使用した pgAdmin の使用

それは以下を返すはずですwing:

_ ワイルドカードを使用した pgAdmin の使用

NOT 演算子の使用

ステップ1) pgAdmin アカウントにログインします。

ステップ2)

  1. 左側のナビゲーション バーで、[データベース] をクリックします。
  2. 「デモ」をクリックします。

pgAdmin での NOT 演算子の使用

ステップ3) 名前が「Post」で始まらないすべての書籍を表示するには、クエリ エディターにクエリを入力します。

SELECT *
FROM
   Book
WHERE
  name NOT LIKE 'Post%';

ステップ4) 「実行」ボタンをクリックします。

pgAdmin での NOT 演算子の使用

それは以下を返すはずですwing:

pgAdmin での NOT 演算子の使用

pgAdmin での NOT 演算子の使用

名前に「Made」という単語が含まれていない本のリストを表示するには:

ステップ1) 次のように入力しますwing クエリエディターでクエリを実行します。

SELECT *
FROM
   Book
WHERE
  name NOT LIKE '%Made%';

ステップ2) 「実行」ボタンをクリックします。

pgAdmin での NOT 演算子の使用

それは以下を返すはずですwing:

pgAdmin での NOT 演算子の使用

まとめ

  • PostgreSQL の LIKE は、ワイルドカードを使用してテキスト値をパターンと照合する際に使用されます。
  • LIKE 句を使用すると、ワイルドカードを使用できます。 SELECT、UPDATE、INSERT、または DELETE ステートメント。
  • % ワイルドカードは XNUMX つ以上の値と一致します。 値には数字または文字を使用できます。
  • _ ワイルドカードは XNUMX つの値にのみ一致します。 値には文字または数字を指定できます。
  • LIKE 演算子を NOT 演算子と組み合わせて、検索パターンに一致しない行を返すことができます。

このチュートリアルで使用するデータベースをダウンロードする