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.
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ół:
Aby znaleźć książki, których tytuł zaczyna się od „Lear”, uruchom poniższe zapytanie.
SELECT *
FROM
Book
WHERE
name LIKE 'Lear%';
Zapytanie zwraca:
Aby znaleźć książki, których nazwa zawiera gdziekolwiek słowo „by”:
SELECT *
FROM
Book
WHERE
name LIKE '%by%';
Zapytanie zwraca:
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:
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:
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:
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:
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.
Krok 3) Wpisz zapytanie w Edytorze zapytań:
SELECT *
FROM
Book
WHERE
name LIKE 'Lear%';
Krok 4) Kliknij Wykonać.
W panelu wyników wyświetlane są pasujące książki:
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ć.
Panel wyników pokazuje:
_ 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.
Krok 3) Wpisz zapytanie w Edytorze zapytań:
SELECT *
FROM
Book
WHERE
name LIKE '_earn%';
Krok 4) Kliknij Wykonać.
Panel wyników pokazuje:
Krok 5) Uruchom drugi przykład:
- Wpisz zapytanie w Edytorze zapytań:
SELECT *
FROM
Book
WHERE
name LIKE '%Beginner_';
- Kliknij Wykonać.
Panel wyników pokazuje:
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.
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ć.
Panel wyników pokazuje:
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ć.
Panel wyników pokazuje:
Pobierz bazę danych używaną w tym samouczku.
























