PostgreSQL LIKE, nie Like, symbole wieloznaczne (%, _ ) Przykłady

⚡ Inteligentne podsumowanie

PostgreSQL Funkcja LIKE dopasowuje tekst do wzorców za pomocą dwóch symboli wieloznacznych — znaku procentu i podkreślenia. Ten samouczek pokazuje, jak używać LIKE i NOT LIKE w poleceniach SELECT, z przykładami w psql i pgAdmin dla każdego przypadku.

  • 🔍 rdzeń Operasłup: LIKE porównuje kolumnę lub wyrażenie ze wzorcem wieloznacznym i zwraca wartość true w przypadku dopasowania.
  • 🌟 Dwie dzikie karty: % dopasowuje zero lub więcej znaków; _ pasuje dokładnie do jednego znaku.
  • Dopasowanie odwrotne: Połącz NOT z LIKE, aby zwrócić wiersze, które to robią nie dopasuj do wzoru.
  • 🛠️. Dwa interfejsy: Uruchom te same zapytania z wiersza poleceń psql lub graficznie w pgAdmin.
  • 🎯 Postać ucieczki: Użyj klauzuli ESCAPE, aby dopasować znaki % lub _ wewnątrz wzorca.
  • 🤖 Wzmocnienie AI: Narzędzia bazodanowe AI tłumaczą wyszukiwanie w języku potocznym na wzorce LIKE i sugerują ILIKE, gdy wymagane jest dopasowanie bez uwzględniania wielkości liter.

PostgreSQL LIKE, nie Like, symbole wieloznaczne (%, _ ) Przykłady

PostgreSQL LIKE Operator dopasowuje wartości tekstowe do wzorców za pomocą symboli wieloznacznych. Jeśli wyrażenie wyszukiwania pasuje do wzorca, funkcja LIKE zwraca true. Znaki wieloznaczne działają w WHERE klauzula SELECT, UPDATE, INSERTlub DELETE.

Jakie są PostgreSQL Symbole wieloznaczne?

PostgreSQL obsługuje dwa symbole wieloznaczne LIKE:

  • Znak procentu (%): dopasowuje zero, jeden lub wiele znaków lub cyfr.
  • Podkreślenie (_): dopasowuje dokładnie jeden znak lub cyfrę.

Te dwa symbole można łączyć w ramach tego samego wzorca. Jeśli LIKE zostanie użyty bez żadnego symbolu wieloznacznego, zachowuje się jak symbol równości (=) operatora.

PostgreSQL Składnia LIKE

Podstawowa składnia polecenia LIKE wygląda następująco:

expression LIKE pattern [ ESCAPE 'escape-character' ]
  • wyrażenie — wyrażenie znakowe, zazwyczaj nazwa kolumny lub pola.
  • wzorzec — wyrażenie znakowe zawierające symbole wieloznaczne.
  • znak ucieczki — opcjonalnie. Pozwala dopasować dosłowne % or _ znaków. W przypadku pominięcia, ukośnik odwrotny (\) jest domyślnym znakiem ucieczki.

PostgreSQL PODOBNIE jak z symbolem wieloznacznym %

% znak pasuje do zera, jednego lub więcej znaków. Rozważ następujące Book stół:

Przykładowa tabela książek używana w przykładach LIKE

Aby znaleźć książki, których tytuł zaczyna się od „Lear”, uruchom poniższe zapytanie.

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

Zapytanie zwraca:

PODOBA SIĘ Wynik zapytania Lear% zwracający pasujące książki

Aby znaleźć książki, których nazwa zawiera gdziekolwiek słowo „by”:

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

Zapytanie zwraca:

PODOBA MI SIĘ %by% wynik zapytania z pasującymi książkami

PostgreSQL PODOBNIE jak z _ Wildcard

_ Znak pasuje dokładnie do jednego znaku. Poniższe zapytanie wyszukuje nazwy, w których pierwszym znakiem jest dowolna pojedyncza litera, po której następuje „earn”, a następnie dowolny sufiks:

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

Zapytanie zwraca:

Wynik zapytania LIKE _earn% z prefiksem jednoznakowym jest zgodny

Inny przykład — dopasuj dowolny tekst kończący się słowem „Początkujący” i jednym dodatkowym znakiem:

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

Zapytanie zwraca:

PODOBA SIĘ %Początkujący_ wynik zapytania pasujący do pojedynczego znaku końcowego

PostgreSQL NIE JAK OperaTor

Połącz LIKE z NOT, aby zwrócić wiersze, które to robią nie Dopasuj do wzorca. Na przykład, wypisz wszystkie książki, których tytuł nie zaczyna się od „Post”:

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

Zapytanie zwraca:

NIE PODOBA SIĘ Post% wynik wykluczający książki zaczynające się od Post

Tylko jedna książka spełnia ten warunek. Wypisz teraz wszystkie książki, których tytuły spełniają ten warunek. nie zawierają słowo „Wykonano”:

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

Zapytanie zwraca:

NIE PODOBA SIĘ wynikowi %Made% zwracającemu trzy pasujące książki

Warunek spełniają trzy wiersze.

Używanie LIKE z pgAdmin

Te same zapytania można również uruchomić graficznie w narzędziu Query Tool pgAdmin.

% Symbol wieloznaczny w pgAdmin

Krok 1) Zaloguj się do pgAdmin.

Krok 2) Na pasku nawigacyjnym po lewej stronie kliknij Bazy danych, następnie kliknij Demo.

Drzewo nawigacyjne pgAdmin z rozszerzonymi bazami danych i demonstracją

Krok 3) Wpisz zapytanie w Edytorze zapytań:

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

Krok 4) Kliknij Wykonać.

Narzędzie do zapytań pgAdmin z przyciskiem Wykonaj na pasku narzędzi

W panelu wyników wyświetlane są pasujące książki:

Panel wyników pgAdmin dla zapytania LIKE Lear%

Aby wyszukać książkę zawierającą w tytule słowo „by”:

Krok 1) Wpisz poniższe polecenie w Edytorze zapytań:

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

Krok 2) Kliknij Wykonać.

Narzędzie pgAdmin Query uruchamia zapytanie LIKE %by%

Panel wyników pokazuje:

Panel wyników pgAdmin dla zapytania LIKE %by%

_ Symbol wieloznaczny w pgAdmin

Krok 1) Zaloguj się do pgAdmin.

Krok 2) Na pasku nawigacyjnym po lewej stronie kliknij Bazy danych, następnie kliknij Demo.

Drzewo nawigacyjne pgAdmin pokazujące drzewo baz danych

Krok 3) Wpisz zapytanie w Edytorze zapytań:

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

Krok 4) Kliknij Wykonać.

Narzędzie pgAdmin Query uruchamiane w trybie LIKE _earn% query

Panel wyników pokazuje:

Panel wyników pgAdmin dla zapytania LIKE _earn%

Krok 5) Uruchom drugi przykład:

  1. Wpisz zapytanie w Edytorze zapytań:
SELECT *
FROM
   Book
WHERE
   name LIKE '%Beginner_';
  1. Kliknij Wykonać.

Narzędzie zapytań pgAdmin działające JAK %Beginner_ query

Panel wyników pokazuje:

Panel wyników pgAdmin dla zapytania LIKE %Beginner_

NIE JAK w pgAdmin

Krok 1) Zaloguj się do pgAdmin.

Krok 2) Na pasku nawigacyjnym po lewej stronie kliknij Bazy danych, następnie kliknij Demo.

Drzewo nawigacyjne pgAdmin dla przykładu NIE PODOBA SIĘ

Krok 3) Aby wyświetlić listę wszystkich książek, których tytuł nie zaczyna się od „Post”, wpisz:

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

Krok 4) Kliknij Wykonać.

Narzędzie pgAdmin Query Tool działa NIE JAK zapytanie Post%

Panel wyników pokazuje:

Panel wyników pgAdmin dla zapytania NOT LIKE Post%

Dodatkowe szczegóły wyników pgAdmin dla zapytania NOT LIKE

Aby wyświetlić listę książek, których nazwa nie zawiera słowa „Made”:

Krok 1) Wpisz poniższe polecenie w Edytorze zapytań:

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

Krok 2) Kliknij Wykonać.

Narzędzie pgAdmin Query Tool działa NIE JAK zapytanie %Made%

Panel wyników pokazuje:

Panel wyników pgAdmin dla zapytania NOT LIKE %Made%

Pobierz bazę danych używaną w tym samouczku.

FAQ

Funkcja LIKE rozróżnia wielkość liter, natomiast funkcja ILIKE wykonuje dopasowanie bez uwzględniania wielkości liter. Funkcja ILIKE to PostgreSQL Na przykład nazwa ILIKE „lear%” pasuje zarówno do „Learn”, jak i „LEAR”. Użyj ILIKE, gdy wielkość liter wprowadzanych przez użytkownika jest nieprzewidywalna.

Użyj klauzuli ESCAPE, aby zadeklarować znak ucieczki, a następnie dodaj prefiks do symbolu wieloznacznego. Na przykład, kod WHERE LIKE '50!%%' ESCAPE '!' wyszukuje wartości zaczynające się od „50%”, ponieważ wykrzyknik zastępuje znak procenta.

Użyj LIKE do prostych dopasowań prefiksów, sufiksów lub podciągów. Przełącz się na wyrażenia regularne POSIX (~ i ~*), gdy potrzebujesz klas znaków, alternatyw lub kwantyfikatorów. Wyrażenia regularne są bardziej wydajne, ale zazwyczaj wolniejsze niż LIKE w przypadku podstawowych wzorców.

Tak. AI Asystenci, tacy jak współpiloci przetwarzania tekstu na SQL, tłumaczą monity, takie jak „znajdź klientów, których adres e-mail zawiera słowo acme” na nazwy, np. „%acme%”, i wyjaśniają logikę symboli wieloznacznych, przyspieszając doraźne raportowanie.

Generative AI sprawdza plan zapytania, rekomenduje indeks trigramowy (pg_trgm) dla wyszukiwań typu LIKE z wiodącymi symbolami wieloznacznymi i przepisuje wzorce, które zapobiegają użyciu indeksu. Dzięki temu pełne skanowanie tabeli zamienia się w milisekundowe wyszukiwania w dużych bazach danych. PostgreSQL stoły.

Podsumuj ten post następująco: