Operátor PostgreSQL LIKE nám pomáha porovnávať textové hodnoty so vzormi pomocou zástupných znakov. Je možné priradiť hľadaný výraz k výrazu vzoru.
Ak dôjde k zhode, operátor LIKE vráti hodnotu true. Pomocou operátora LIKE je možné použiť zástupné znaky v klauzule WHERE príkazov SELECT, UPDATE, INSERT alebo DELETE.
V tomto výučbe PostgreSQL sa dozviete toto:
- Divoké karty
- Syntax
- Používanie zástupných znakov%
- Používanie _ zástupných znakov
- Používanie operátora NOT
- Pomocou pgAdmin
Divoké karty
Existujú iba dva zástupné znaky, ktoré je možné použiť spolu s
- Znak percenta (%)
- Podčiarkovník (_)
Znak percenta (%) predstavuje nulu, jeden alebo viac znakov alebo čísel.
Zástupný znak podčiarknutia (_) sa používa na vyjadrenie jedného znaku alebo čísla. Tieto symboly je možné aj kombinovať. Ak sa operátor LIKE nepoužíva spolu s týmito dvoma znakmi, bude pôsobiť ako operátor rovnosti.
Syntax
Tu je syntax operátora LIKE:
expression LIKE pattern [ ESCAPE 'escape-character' ]
Výraz je znakový výraz ako stĺpec alebo pole.
Vzor je znakový výraz s priraďovaním vzorov.
Escape-znak je voliteľný parameter. Umožňuje testovanie doslovných inštancií zástupných znakov, ako sú% a _. Ak nie je uvedený, použije sa \ ako únikový znak.
Používanie zástupných znakov%
Ako sme už uviedli, znamienko% sa zhoduje s nulou, jedným alebo viacerými znakmi alebo číslami. Zvážte nasledujúcu tabuľku:
Kniha:
Chceme knihu, ktorá sa volá „Lear
… “Aby sme dosiahli tento výsledok, môžeme spustiť nasledujúci príkaz:SELECT *FROMBookWHEREname LIKE 'Lear%';
Takto sa vráti toto:
Kniha sa našla.
Vyhľadajme knihu „podľa“ v jej názve:
SELECT *FROMBookWHEREname LIKE '%by%';
Takto sa vráti toto:
Používanie _ zástupných znakov
Ako sme už uviedli, znak _ predstavuje jeden znak alebo číslo. Môže byť použitý ako je uvedené nižšie:
SELECT *FROMBookWHEREname LIKE '_earn%';
Takto sa vráti toto:
Tu je ďalší príklad:
SELECT *FROMBookWHEREname LIKE '%Beginner_';
Takto sa vráti toto:
Používanie operátora NOT
Ak je operátor LIKE skombinovaný s operátorom NOT, vráti sa akýkoľvek riadok, ktorý nezodpovedá vzoru vyhľadávania. Napríklad, aby sme videli knihu, ktorej názov nezačína na „príspevok“, môžeme spustiť nasledujúci príkaz:
SELECT *FROMBookWHEREname NOT LIKE 'Post%';
Takto sa vráti toto:
Podmienku vyhľadávania splnila iba jedna kniha. Pozrime sa na zoznam mien kníh, ktoré nemajú slovo „Vyrobené“:
SELECT *FROMBookWHEREname NOT LIKE '%Made%';
Takto sa vráti toto:
Podmienku vyhľadávania splnili 3 riadky.
Pomocou pgAdmin
Teraz sa pozrime, ako je možné vykonať akcie pomocou pgAdmin.
Používanie zástupných znakov%
Krok 1) Prihláste sa do svojho účtu pgAdmin.
Krok 2)
- Na navigačnom paneli vľavo kliknite na položku Databázy.
- Kliknite na ukážku.
Krok 3) Zadajte dopyt do editora dotazov:
SELECT *FROMBookWHEREname LIKE 'Lear%';
Krok 4) Kliknite na tlačidlo Vykonať.
Mal by vrátiť nasledujúce:
Vyhľadanie knihy „podľa“ v jej názve:
Krok 1) Do editora dotazov zadajte nasledujúci príkaz:
SELECT *FROMBookWHEREname LIKE '%by%';
Krok 2) Kliknite na tlačidlo Vykonať.
Mal by vrátiť nasledujúce:
Používanie _ zástupných znakov
Krok 1) Prihláste sa do svojho účtu pgAdmin.
Krok 2)
- Na navigačnom paneli vľavo kliknite na položku Databázy.
- Kliknite na ukážku.
Krok 3) Zadajte dopyt do editora dotazov:
SELECT *FROMBookWHEREname LIKE '_earn%';
Krok 4) Kliknite na tlačidlo Vykonať.
Mal by vrátiť nasledujúce:
Krok 5) Spustenie druhého príkladu:
- Do editora dotazov zadajte nasledujúci dotaz:
SELECT *FROMBookWHEREname LIKE '%Beginner_';
- Kliknite na tlačidlo Vykonať.
Mal by vrátiť nasledujúce:
Používanie operátora NOT
Krok 1) Prihláste sa do svojho účtu pgAdmin.
Krok 2)
- Na navigačnom paneli vľavo kliknite na položku Databázy.
- Kliknite na ukážku.
Krok 3) Ak chcete zobraziť všetky knihy, ktorých mená nezačínajú slovami „Príspevok“, zadajte dopyt v editore dotazov:
SELECT *FROMBookWHEREname NOT LIKE 'Post%';
Krok 4) Kliknite na tlačidlo Vykonať.
Mal by vrátiť nasledujúce:
Zoznam kníh, ktorých názvy neobsahujú slovo „Vyrobené“, zobrazíte takto:
Krok 1) Do editora dotazov zadajte nasledujúci dotaz:
SELECT *FROMBookWHEREname NOT LIKE '%Made%';
Krok 2) Kliknite na tlačidlo Vykonať.
Mal by vrátiť nasledujúce:
Zhrnutie:
- PostgreSQL LIKE sa používa na porovnávanie textových hodnôt so vzormi pomocou zástupných znakov.
- Klauzula LIKE nám umožňuje používať zástupné znaky vo príkazoch SELECT, UPDATE, INSERT alebo DELETE.
- Zástupný znak% sa zhoduje s jednou alebo viacerými hodnotami. Hodnoty môžu byť čísla alebo znaky.
- Zástupný znak _ sa zhoduje presne s jednou hodnotou. Hodnota môže byť znak alebo číslo.
- Operátor LIKE je možné kombinovať s operátorom NOT tak, aby vrátil akýkoľvek riadok, ktorý nezodpovedá vzoru vyhľadávania.
Stiahnite si databázu použitú v tomto výučbe