PostgreSQL LIKE, Not Like, Helyettesítő karakterek (%, _ ) Példák

⚡ Okos összefoglaló

PostgreSQL A LIKE függvény két helyettesítő karakter – a százalékjel és az aláhúzásjel – segítségével illeszti össze a szöveget a mintákkal. Ez az oktatóanyag bemutatja, hogyan használható a LIKE és a NOT LIKE függvény SELECT utasításokban, mindkét esetre példaként bemutatva a psql és a pgAdmin rendszert.

  • 🔍 Mag Operator: A LIKE függvény egy oszlopot vagy kifejezést összehasonlít egy helyettesítő karaktermintával, és egyezés esetén igaz értéket ad vissza.
  • 🌟 Két helyettesítő karakter: % nulla vagy több karakterrel egyezik; _ pontosan egy karakterrel egyezik.
  • Inverz egyezés: Kombináld a NOT és a LIKE függvényt, hogy olyan sorokat adj vissza, amelyek igen nem illeszkedjen a mintához.
  • 🇧🇷 Két interfész: Futtassa ugyanazokat a lekérdezéseket a psql parancssorból vagy grafikusan a pgAdmin-on belül.
  • 🎯 Menekülési karakter: Az ESCAPE záradékkal literál % vagy _ karaktereket illeszthet a mintán belül.
  • 🤖 AI Boost: A mesterséges intelligencia által fejlesztett adatbázis-eszközök egyszerű nyelvű keresési igényeket fordítanak LIKE mintákká, és ILIKE mintákat javasolnak, ha kis- és nagybetűket nem megkülönböztető egyezésre van szükség.

PostgreSQL LIKE, Not Like, Helyettesítő karakterek (%, _ ) Példák

Az PostgreSQL HASONLÓ A szöveges értékeket helyettesítő karakterek segítségével hasonlítja össze a mintákkal. Ha a keresési kifejezés megegyezik a mintával, a LIKE eredményt adja. trueA helyettesítő karakterek a következőben működnek: WHERE záradék SELECT, UPDATE, INSERTvagy DELETE.

Mik PostgreSQL Helyettesítő karakterek?

PostgreSQL két LIKE helyettesítő karaktert támogat:

  • Százalékjel (%): nulla, egy vagy több karakterre vagy számjegyre illeszkedik.
  • Aláhúzás (_): pontosan egy karakterrel vagy számjeggyel egyezik.

A két szimbólum kombinálható ugyanazon mintán belül. Ha a LIKE-ot helyettesítő karakter nélkül használjuk, akkor úgy viselkedik, mint az egyenlőségjel (=) operátor.

PostgreSQL LIKE szintaxis

Az alapvető LIKE szintaxis a következő:

expression LIKE pattern [ ESCAPE 'escape-character' ]
  • kifejezés — egy karakteres kifejezés, jellemzően egy oszlop- vagy mezőnév.
  • minta — egy karakterkifejezés, amely helyettesítő karaktereket tartalmaz.
  • escape-karakter — opcionális. Lehetővé teszi a literál egyeztetését % or _ karakterek. Ha elhagyjuk, a fordított perjel (\) az alapértelmezett escape karakter.

PostgreSQL MINT a % helyettesítő karakterrel

Az % az előjel nulla, egy vagy több karakterrel egyezik. Tekintsük a következőket Book asztal:

A LIKE példákban használt mintakönyv tábla

A „Lear” betűvel kezdődő könyvek megkereséséhez futtassa az alábbi lekérdezést.

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

A lekérdezés a következőt adja vissza:

LIKE Lear% lekérdezés eredménye, amely egyező könyveket ad vissza

Ha olyan könyveket szeretne keresni, amelyek nevében bárhol szerepel a „by” szó:

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

A lekérdezés a következőt adja vissza:

LIKE %by% lekérdezési eredmény egyező könyvekkel

PostgreSQL MINT a _ helyettesítő karakterrel

Az _ A jel pontosan egy karakterrel egyezik. A következő lekérdezés olyan neveket talál, amelyekben az első karakter egyetlen betű, majd a „keres” szó, végül pedig bármely utótag következik:

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

A lekérdezés a következőt adja vissza:

LIKE _earn% lekérdezési eredmény egykarakteres előtaggal

Egy másik példa – egyezzen meg minden olyan szöveggel, amely „Kezdő” végződésű, plusz egy további karakterrel:

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

A lekérdezés a következőt adja vissza:

MINT a %Beginner_ lekérdezés eredménye, amely egyezik a végén található egyetlen karakterrel

PostgreSQL NEM MINT Operator

Kombináld a LIKE és a NOT függvényt, hogy olyan sorokat adj vissza, amelyek igen nem illeszkedjen a mintához. Például sorolja fel az összes könyvet, amelynek a neve nem „Post”-tal kezdődik:

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

A lekérdezés a következőt adja vissza:

NEM TETSZIK A Post% eredményből, kivéve a Post betűvel kezdődő könyveket

Csak egy könyv felel meg a feltételnek. Most sorold fel az összes könyvet, amelynek a neve megfelel a feltételnek. nem tartalmazza a „Készült” szót:

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

A lekérdezés a következőt adja vissza:

NOT LIKE %Made% eredmény három egyező könyvet ad vissza

Három sor felel meg a feltételnek.

A LIKE használata a pgAdmin-nal

Ugyanezek a lekérdezések grafikusan is futtathatók a pgAdmin Lekérdező eszközében.

% Helyettesítő karakter a pgAdmin-ban

Step 1) Jelentkezzen be a pgAdmin-be.

Step 2) A bal oldali navigációs sávban kattintson a gombra Adatbázisok, majd kattintson a gombra Demó.

pgAdmin navigációs fa kibontott adatbázisokkal és demóval

Step 3) Írja be a lekérdezést a Lekérdezésszerkesztőbe:

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

Step 4) Kattints Végrehajt.

pgAdmin Lekérdezőeszköz a Végrehajtás eszköztár gombbal

Az eredménypanelen láthatók a találati listában szereplő könyvek:

pgAdmin eredménypanel LIKE Lear% lekérdezéshez

Egy olyan könyv kereséséhez, amelynek nevében bárhol szerepel a „by” szó:

Step 1) Írd be a következőket a Lekérdezésszerkesztőbe:

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

Step 2) Kattints Végrehajt.

pgAdmin Lekérdezőeszköz, amely hasonló %by% lekérdezést futtat

Az eredménypanel a következőket mutatja:

pgAdmin eredménypanel LIKE %by% lekérdezéshez

_ Helyettesítő karakter a pgAdmin-ban

Step 1) Jelentkezzen be a pgAdmin-be.

Step 2) A bal oldali navigációs sávban kattintson a gombra Adatbázisok, majd kattintson a gombra Demó.

pgAdmin navigációs fa, amely az adatbázisfát mutatja

Step 3) Írja be a lekérdezést a Lekérdezésszerkesztőbe:

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

Step 4) Kattints Végrehajt.

pgAdmin Lekérdezőeszköz LIKE _earn% lekérdezést futtat

Az eredménypanel a következőket mutatja:

pgAdmin eredménypanel a LIKE _earn% lekérdezéshez

Step 5) Futtassa a második példát:

  1. Írja be a lekérdezést a Lekérdezésszerkesztőbe:
SELECT *
FROM
   Book
WHERE
   name LIKE '%Beginner_';
  1. Kattints Végrehajt.

pgAdmin Lekérdezőeszköz, amely hasonlóképpen fut %Beginner_ lekérdezésként

Az eredménypanel a következőket mutatja:

pgAdmin eredménypanel LIKE %Beginner_ lekérdezéshez

NEM MINT a pgAdmin-ban

Step 1) Jelentkezzen be a pgAdmin-be.

Step 2) A bal oldali navigációs sávban kattintson a gombra Adatbázisok, majd kattintson a gombra Demó.

pgAdmin navigációs fa a NOT LIKE példához

Step 3) Az összes olyan könyv listázásához, amelynek a neve nem „Post”-tal kezdődik, írja be:

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

Step 4) Kattints Végrehajt.

pgAdmin Lekérdezőeszköz NEM MINT A Post% lekérdezés

Az eredménypanel a következőket mutatja:

pgAdmin eredménypanel a NOT LIKE Post% lekérdezéshez

További pgAdmin eredményrészletek a NOT LIKE lekérdezéshez

Azoknak a könyveknek a listázása, amelyeknek a címe nem tartalmazza a „Made” szót:

Step 1) Írd be a következőket a Lekérdezésszerkesztőbe:

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

Step 2) Kattints Végrehajt.

pgAdmin Lekérdezőeszköz NEM MINT A %Made% lekérdezés fut

Az eredménypanel a következőket mutatja:

pgAdmin eredménypanel a NOT LIKE %Made% lekérdezéshez

Töltse le az ebben az oktatóanyagban használt adatbázist.

GYIK

A LIKE megkülönbözteti a kis- és nagybetűket, míg az ILIKE nem megkülönbözteti a kis- és nagybetűket. Az ILIKE egy PostgreSQL kiterjesztés. Például az ILIKE 'lear%' név egyezik a „Learn” és a „LEAR” kifejezésekkel egyaránt. Használja az ILIKE kifejezést, ha a felhasználói beviteli mező kis- és nagybetűinek nagyítása kiszámíthatatlan.

Az ESCAPE záradékkal deklarálhatsz egy escape karaktert, majd a literál helyettesítő karakterét elé írhatod. Például a WHERE kód, LIKE '50!%%' ESCAPE '!', az „50%-kal” kezdődő értékeket találja meg, mivel a felkiáltójel a százalékjelet helyettesíti.

Használd a LIKE kifejezést egyszerű előtag-, utótag- vagy alkarakterlánc-egyeztetésekhez. Válts POSIX reguláris kifejezésre (~ és ~*), ha karakterosztályokra, alternálásra vagy kvantorokra van szükséged. A reguláris kifejezés hatékonyabb, de jellemzően lassabb, mint a LIKE az alapvető minták esetén.

Igen. AI Az olyan asszisztensek, mint a szövegből SQL-t konvertáló másodpilóták, olyan promptokat fordítanak le, mint például a „keressen ügyfeleket, akiknek az e-mail címe tartalmazza az acme karakterláncot”, névként LIKE '%acme%'-ra, és elmagyarázzák a helyettesítő karakter logikáját, felgyorsítva az eseti jelentéskészítést.

A generatív mesterséges intelligencia megvizsgálja a lekérdezési tervet, trigramindexet (pg_trgm) javasol a vezető helyettesítő karakteres LIKE keresésekhez, és átírja azokat a mintákat, amelyek megakadályozzák az indexek használatát. Ez a teljes táblázatok átvizsgálását milliszekundumos keresésekké alakítja nagyméretű táblákon. PostgreSQL táblák.

Foglald össze ezt a bejegyzést a következőképpen: