PostgreSQL LIKE、NOT LIKE、ワイルドカード (%、_) の例
この PostgreSQL LIKE 演算子は、ワイルドカードを使用してテキスト値をパターンと一致させるのに役立ちます。検索式をパターン式と一致させることも可能です。
一致が見つかった場合、LIKE 演算子は true を返します。LIKE 演算子を使用すると、SELECT、UPDATE、INSERT、または DELETE ステートメントの WHERE 句でワイルドカードを使用できます。
ワイルドカード
一緒に使用できるワイルドカードは XNUMX つだけです
- パーセント記号 (%)
- アンダースコア(_)
パーセント記号 (%) は、0 個、1 個、または複数の文字または数字を表すために使用されます。
アンダースコア ワイルドカード (_) は、1 つの文字または数字を表すために使用されます。これらの記号は組み合わせることもできます。LIKE 演算子をこれらの 2 つの記号と一緒に使用しない場合は、等号演算子のように動作します。
構文
LIKE 演算子の構文は次のとおりです。
expression LIKE pattern [ ESCAPE 'escape-character' ]
式は列やフィールドのような文字式です。
パターンはパターンマッチングによる文字表現です。
エスケープ文字はオプションのパラメータです。 これにより、% や _ などのワイルドカード文字のリテラル インスタンスをテストできます。 指定しない場合は、\ がエスケープ文字として使用されます。
%ワイルドカードの使用
前述したように、% 記号は 0 個、1 個、またはそれ以上の文字または数字に一致します。次の表を検討してください。
本:
「Lear…」のような名前の本でその結果を取得したい場合は、次のコマンドを実行します。
SELECT * FROM Book WHERE name LIKE 'Lear%';
次のように返されます。
本が見つかりました。
その名前で「by」の本を検索してみましょう。
SELECT * FROM Book WHERE name LIKE '%by%';
次のように返されます。
_ ワイルドカードの使用
前に述べたように、_ 記号は XNUMX つの文字または数字を表します。 以下に示すように使用できます。
SELECT * FROM Book WHERE name LIKE '_earn%';
これにより、次が返されます。
次に別の例を示します。
SELECT * FROM Book WHERE name LIKE '%Beginner_';
これにより、次が返されます。
NOTの使用 Operaタ
LIKE 演算子を NOT 演算子と組み合わせると、検索パターンに一致しない行が返されます。たとえば、名前が「post」で始まらない本を表示するには、次のコマンドを実行します。
SELECT * FROM Book WHERE name NOT LIKE 'Post%';
これにより、次が返されます。
検索条件に一致したのは XNUMX 冊だけでした。 「Made」という単語を含まない本の名前のリストを見てみましょう。
SELECT * FROM Book WHERE name NOT LIKE '%Made%';
これにより、次が返されます。
検索条件に一致した行が 3 件ありました。
pgAdminの使用
次に、pgAdmin を使用してアクションを実行する方法を見てみましょう。
%ワイルドカードの使用
ステップ1) pgAdmin アカウントにログインします。
ステップ2)
- 左側のナビゲーション バーで、[データベース] をクリックします。
- 「デモ」をクリックします。
ステップ3) クエリ エディターにクエリを入力します。
SELECT * FROM Book WHERE name LIKE 'Lear%';
ステップ4) 「実行」ボタンをクリックします。
次のような結果が返されます。
「by」という名前の本を検索するには:
ステップ1) クエリ エディターに次のコマンドを入力します。
SELECT * FROM Book WHERE name LIKE '%by%';
ステップ2) 「実行」ボタンをクリックします。
次のような結果が返されます。
_ ワイルドカードの使用
ステップ1) pgAdmin アカウントにログインします。
ステップ2)
- 左側のナビゲーション バーで、[データベース] をクリックします。
- 「デモ」をクリックします。
ステップ3) クエリ エディターにクエリを入力します。
SELECT * FROM Book WHERE name LIKE '_earn%';
ステップ4) 「実行」ボタンをクリックします。
次のような結果が返されます。
ステップ5) XNUMX 番目の例を実行するには:
- クエリ エディターに次のクエリを入力します。
SELECT * FROM Book WHERE name LIKE '%Beginner_';
- 「実行」ボタンをクリックします。
次のような結果が返されます。
NOTの使用 Operaタ
ステップ1) pgAdmin アカウントにログインします。
ステップ2)
- 左側のナビゲーション バーで、[データベース] をクリックします。
- 「デモ」をクリックします。
ステップ3) 名前が「Post」で始まらないすべての書籍を表示するには、クエリ エディターにクエリを入力します。
SELECT * FROM Book WHERE name NOT LIKE 'Post%';
ステップ4) 「実行」ボタンをクリックします。
次のような結果が返されます。
名前に「Made」という単語が含まれていない本のリストを表示するには:
ステップ1) クエリ エディターに次のクエリを入力します。
SELECT * FROM Book WHERE name NOT LIKE '%Made%';
ステップ2) 「実行」ボタンをクリックします。
次のような結果が返されます。
まとめ
- この PostgreSQL LIKE は、ワイルドカードを使用してテキスト値をパターンと照合する場合に使用されます。
- LIKE 句を使用すると、ワイルドカードを使用できます。 SELECT、UPDATE、INSERT、または DELETE ステートメント。
- % ワイルドカードは 1 つ以上の値と一致します。値には数字または文字を使用できます。
- _ ワイルドカードは XNUMX つの値にのみ一致します。 値には文字または数字を指定できます。
- LIKE 演算子を NOT 演算子と組み合わせて、検索パターンに一致しない行を返すことができます。