PostgreSQL LIKE, Nelíbí se mi, zástupné znaky (%, _ ) Příklady

⚡ Chytré shrnutí

PostgreSQL Funkce LIKE porovnává text se vzory pomocí dvou zástupných znaků – znaku procenta a podtržítka. Tento tutoriál ukazuje, jak používat LIKE a NOT LIKE v příkazech SELECT, s příklady z psql a pgAdmin pro každý případ.

  • 🔍 Jádro Operator: Funkce LIKE porovnává sloupec nebo výraz se zástupným vzorem a v případě shody vrací hodnotu true.
  • ???? Dva zástupné znaky: % odpovídá nule nebo více znakům; _ odpovídá přesně jednomu znaku.
  • Inverzní shoda: Zkombinujte NOT s LIKE pro vrácení řádků, které to splňují ne odpovídat vzoru.
  • 🛠️ Dvě rozhraní: Stejné dotazy spusťte z příkazového řádku psql nebo graficky v pgAdminu.
  • 🎯 Únikový znak: Použijte klauzuli ESCAPE pro porovnání literálních znaků % nebo _ uvnitř vzoru.
  • 🤖 AI Boost: Nástroje databází s umělou inteligencí převádějí potřeby vyhledávání v prostém jazyce do vzorů LIKE a navrhují ILIKE, pokud je vyžadováno porovnávání bez rozlišování velkých a malých písmen.

PostgreSQL LIKE, Nelíbí se mi, zástupné znaky (%, _ ) Příklady

Jedno PostgreSQL LIKE Operátor porovnává textové hodnoty se vzory pomocí zástupných znaků. Pokud hledaný výraz odpovídá vzoru, LIKE vrátí trueZástupné znaky fungují v WHERE klauzule SELECT, UPDATE, INSERTnebo DELETE.

Jaké jsou PostgreSQL zástupné znaky?

PostgreSQL podporuje dva zástupné znaky LIKE:

  • Znaménko procenta (%): odpovídá nule, jednomu nebo více znakům či číslicím.
  • Podtržítko (_): odpovídá přesně jednomu znaku nebo číslici.

Tyto dva symboly lze kombinovat v rámci stejného vzoru. Pokud se LIKE použije bez zástupných znaků, chová se jako symbol rovná se (=) operátor.

PostgreSQL Syntaxe LIKE

Základní syntaxe LIKE je:

expression LIKE pattern [ ESCAPE 'escape-character' ]
  • výraz — znakový výraz, obvykle název sloupce nebo pole.
  • vzor — znakový výraz, který obsahuje zástupné znaky.
  • escape-character — volitelné. Umožňuje porovnat doslovný výraz % or _ znaky. Pokud je vynecháno, zpětné lomítko (\) je výchozí řídicí znak.

PostgreSQL LIKE s zástupným znakem %

Jedno % Znaménko odpovídá nule, jednomu nebo více znakům. Uvažte následující Book stůl:

Ukázková tabulka Book použitá v příkladech LIKE

Chcete-li najít knihy, jejichž název začíná slovem „Lear“, spusťte níže uvedený dotaz.

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

Dotaz vrací:

Výsledek dotazu LIKE Lear% vrací odpovídající knihy

Chcete-li kdekoli najít knihy, jejichž název obsahuje slovo „od“:

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

Dotaz vrací:

LIKE %by% výsledek dotazu s odpovídajícími knihami

PostgreSQL LIKE s zástupným znakem _

Jedno _ Znak odpovídá přesně jednomu znaku. Následující dotaz vyhledá jména, kde prvním znakem je libovolné jedno písmeno, následované slovem „earn“ a poté libovolnou příponou:

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

Dotaz vrací:

Výsledek dotazu LIKE _earn% s shodami s jednoznakovým prefixem

Další příklad – nalezení libovolného textu, který končí na „Začátečník“ a jeden další znak:

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

Dotaz vrací:

LIKE %Beginner_ výsledek dotazu odpovídající koncovému jednotlivému znaku

PostgreSQL NELÍBÍ SE MI OperaTor

Zkombinujte LIKE s NOT pro vrácení řádků, které to dělají. ne podle vzoru. Například uveďte všechny knihy, jejichž název nezačíná slovem „Post“:

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

Dotaz vrací:

NENÍ LÍBÍ SE Post% výsledek s výjimkou knih, které začínají na Post

Podmínku splňuje pouze jedna kniha. Nyní uveďte všechny knihy, jejichž název splňuje... ne obsahovat slovo „Vyrobeno“:

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

Dotaz vrací:

NENÍ LÍBÍ %Made% výsledek vrací tři odpovídající knihy

Tři řádky splňují podmínku.

Použití LIKE s pgAdmin

Stejné dotazy lze také spustit graficky v nástroji Query Tool v pgAdmin.

% zástupný znak v pgAdmin

Krok 1) Přihlaste se do pgAdminu.

Krok 2) V navigační liště vlevo klikněte Databáze, poté klepněte na tlačítko Demonstrace.

Navigační strom pgAdmin s rozbalenými databázemi a demoverzí

Krok 3) Zadejte dotaz do editoru dotazů:

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

Krok 4) klikněte Provést.

Nástroj pro dotazy pgAdmin s tlačítkem Spustit na panelu nástrojů

V panelu výsledků se zobrazí odpovídající knihy:

Výsledkový panel pgAdmin pro dotaz LIKE Lear%

Chcete-li vyhledat knihu, která má kdekoli v názvu slovo „od“:

Krok 1) Do editoru dotazů zadejte následující:

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

Krok 2) klikněte Provést.

Dotazovací nástroj pgAdmin spuštěný dotaz LIKE %by%

V panelu výsledků se zobrazuje:

Výsledkový panel pgAdmin pro dotaz LIKE %by%

_ Zástupný znak v pgAdmin

Krok 1) Přihlaste se do pgAdminu.

Krok 2) V navigační liště vlevo klikněte Databáze, poté klepněte na tlačítko Demonstrace.

Navigační strom pgAdmin zobrazující strom databází

Krok 3) Zadejte dotaz do editoru dotazů:

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

Krok 4) klikněte Provést.

Dotazovací nástroj pgAdmin spuštěný s dotazem LIKE _earn%

V panelu výsledků se zobrazuje:

Výsledkový panel pgAdmin pro dotaz LIKE _earn%

Krok 5) Spusťte druhý příklad:

  1. Zadejte dotaz do editoru dotazů:
SELECT *
FROM
   Book
WHERE
   name LIKE '%Beginner_';
  1. klikněte Provést.

Dotazovací nástroj pgAdmin spuštěný s dotazem LIKE %Beginner_

V panelu výsledků se zobrazuje:

Výsledkový panel pgAdmin pro dotaz LIKE %Beginner_

NEJAKO v pgAdminu

Krok 1) Přihlaste se do pgAdminu.

Krok 2) V navigační liště vlevo klikněte Databáze, poté klepněte na tlačítko Demonstrace.

Navigační strom pgAdmin pro příklad NOT LIKE

Krok 3) Chcete-li zobrazit seznam všech knih, jejichž název nezačíná slovem „Post“, zadejte:

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

Krok 4) klikněte Provést.

Dotazovací nástroj pgAdmin běží NOT LIKE Post% dotaz

V panelu výsledků se zobrazuje:

Výsledkový panel pgAdmin pro dotaz NOT LIKE Post%

Další podrobnosti o výsledku pgAdmin pro dotaz NOT LIKE

Chcete-li vypsat knihy, jejichž název neobsahuje slovo „Made“ (Vyrobeno):

Krok 1) Do editoru dotazů zadejte následující:

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

Krok 2) klikněte Provést.

Dotazovací nástroj pgAdmin běží NOT LIKE dotaz %Made%

V panelu výsledků se zobrazuje:

Výsledkový panel pgAdmin pro dotaz NOT LIKE %Made%

Stáhněte si databázi použitou v tomto tutoriálu.

Nejčastější dotazy

LIKE rozlišuje velká a malá písmena, zatímco ILIKE provádí porovnávání bez rozlišování velkých a malých písmen. ILIKE je PostgreSQL přípona. Například název ILIKE 'lear%' odpovídá výrazům „Learn“ i „LEAR“. ILIKE použijte, když je zadání od uživatele nepředvídatelné.

Pomocí klauzule ESCAPE deklarujte řídicí znak a poté před něj vložte zástupný znak. Například kód WHERE LIKE '50!%%' ESCAPE '!' vyhledá hodnoty začínající na „50%“, protože vykřičník řídí znak procenta.

Pro jednoduché shody prefixů, suffixů nebo podřetězců použijte LIKE. Pokud potřebujete třídy znaků, alternaci nebo kvantifikátory, přepněte na regex POSIX (~ a ~*). Regex je výkonnější, ale pro základní vzory obvykle pomalejší než LIKE.

Ano. AI Asistenti, jako například kopiloti převodu textu do SQL, překládají výzvy typu „najít zákazníky, jejichž e-mail obsahuje acme“ do názvu LIKE '%acme%' a vysvětlují logiku zástupných znaků, čímž urychlují ad-hoc reporting.

Generativní umělá inteligence kontroluje plán dotazů, doporučuje trigramový index (pg_trgm) pro vyhledávání typu LIKE s použitím zástupných znaků a přepisuje vzory, které brání použití indexu. Díky tomu se prohledávání celé tabulky promění v milisekundová vyhledávání ve velkých databázích. PostgreSQL tabulky.

Shrňte tento příspěvek takto: