PostgreSQL LIKE, Nelíbí se mi, zástupné znaky (%, _ ) Příklady
Jedno PostgreSQL Operátor LIKE nám pomáhá porovnávat textové hodnoty se vzory pomocí zástupných znaků. Hledaný výraz je možné přiřadit k výrazu vzoru.
Pokud dojde ke shodě, operátor LIKE vrátí hodnotu true. Pomocí operátoru LIKE je možné použít zástupné znaky v klauzuli WHERE příkazů SELECT, UPDATE, INSERT nebo DELETE.
Divoké karty
Existují pouze dva zástupné znaky, které lze použít společně s
- Znak procenta (%)
- podtržítko (_)
Znak procenta (%) se používá k reprezentaci nuly, jednoho nebo mnoha znaků nebo čísel.
Zástupný znak podtržítka (_) se používá k reprezentaci jednoho znaku nebo čísla. Tyto symboly lze také kombinovat. Pokud se operátor LIKE nepoužije společně s těmito dvěma znaménky, bude se chovat jako operátor rovná se.
Syntax
Zde je syntaxe operátoru LIKE:
expression LIKE pattern [ ESCAPE 'escape-character' ]
Výraz je znakový výraz jako sloupec nebo pole.
Vzor je znakový výraz s odpovídajícím vzorem.
Escape-character je volitelný parametr. Umožňuje testování doslovných instancí zástupných znaků, jako jsou % a _. Pokud není zadán, bude jako znak escape použit \.
Použití % zástupného znaku
Jak jsme uvedli dříve, znak % odpovídá nule, jednomu nebo více znakům nebo číslům. Zvažte následující tabulku:
Rezervovat:
Chceme, aby kniha, jejíž název je jako „Lear…“, získala tento výsledek, můžeme spustit následující příkaz:
SELECT * FROM Book WHERE name LIKE 'Lear%';
Tím se vrátí následující:
Kniha byla nalezena.
Vyhledejme knihu „podle“ v jejím názvu:
SELECT * FROM Book WHERE name LIKE '%by%';
Tím se vrátí následující:
Použití zástupného znaku _
Jak jsme uvedli dříve, znak _ představuje jeden znak nebo číslo. Může být použit, jak je uvedeno níže:
SELECT * FROM Book WHERE name LIKE '_earn%';
To vrátí následující:
Zde je další příklad:
SELECT * FROM Book WHERE name LIKE '%Beginner_';
To vrátí následující:
Pomocí NOT OperaTor
Když je operátor LIKE zkombinován s operátorem NOT, je vrácen každý řádek, který neodpovídá vyhledávacímu vzoru. Chcete-li například zobrazit knihu, jejíž název nezačíná „post“, můžeme spustit následující příkaz:
SELECT * FROM Book WHERE name NOT LIKE 'Post%';
To vrátí následující:
Podmínku vyhledávání splnila pouze jedna kniha. Podívejme se na seznam názvů knih, které nemají slovo „Vyrobeno“:
SELECT * FROM Book WHERE name NOT LIKE '%Made%';
To vrátí následující:
3 řádky splnily podmínku hledání.
Pomocí pgAdmin
Nyní se podívejme, jak lze akce provádět pomocí pgAdmin.
Použití % zástupného znaku
Krok 1) Přihlaste se ke svému účtu pgAdmin.
Krok 2)
- Na navigační liště vlevo klikněte na Databáze.
- Klepněte na tlačítko Demo.
Krok 3) Zadejte dotaz v editoru dotazů:
SELECT * FROM Book WHERE name LIKE 'Lear%';
Krok 4) Klepněte na tlačítko Spustit.
Mělo by vrátit následující:
Chcete-li vyhledat knihu „podle“ v jejím názvu:
Krok 1) V editoru dotazů zadejte následující příkaz:
SELECT * FROM Book WHERE name LIKE '%by%';
Krok 2) Klepněte na tlačítko Spustit.
Mělo by vrátit následující:
Použití zástupného znaku _
Krok 1) Přihlaste se ke svému účtu pgAdmin.
Krok 2)
- Na navigační liště vlevo klikněte na Databáze.
- Klepněte na tlačítko Demo.
Krok 3) Zadejte dotaz v editoru dotazů:
SELECT * FROM Book WHERE name LIKE '_earn%';
Krok 4) Klepněte na tlačítko Spustit.
Mělo by vrátit následující:
Krok 5) Chcete-li spustit druhý příklad:
- V editoru dotazů zadejte následující dotaz:
SELECT * FROM Book WHERE name LIKE '%Beginner_';
- Klepněte na tlačítko Spustit.
Mělo by vrátit následující:
Pomocí NOT OperaTor
Krok 1) Přihlaste se ke svému účtu pgAdmin.
Krok 2)
- Na navigační liště vlevo klikněte na Databáze.
- Klepněte na tlačítko Demo.
Krok 3) Chcete-li zobrazit všechny knihy, jejichž názvy nezačínají „Příspěvek“, zadejte dotaz do editoru dotazů:
SELECT * FROM Book WHERE name NOT LIKE 'Post%';
Krok 4) Klepněte na tlačítko Spustit.
Mělo by vrátit následující:
Chcete-li zobrazit seznam knih, jejichž názvy neobsahují slovo „Vyrobeno“:
Krok 1) V editoru dotazů zadejte následující dotaz:
SELECT * FROM Book WHERE name NOT LIKE '%Made%';
Krok 2) Klepněte na tlačítko Spustit.
Mělo by vrátit následující:
Shrnutí
- Jedno PostgreSQL LIKE se používá při porovnávání textových hodnot se vzory pomocí zástupných znaků.
- Klauzule LIKE nám umožňuje používat zástupné znaky SELECTpříkazy , UPDATE, INSERT nebo DELETE.
- Zástupný znak % odpovídá jedné nebo více hodnotám. Hodnoty mohou být čísla nebo znaky.
- Zástupný znak _ odpovídá právě jedné hodnotě. Hodnota může být znak nebo číslo.
- Operátor LIKE lze kombinovat s operátorem NOT a vrátit libovolný řádek, který neodpovídá vyhledávacímu vzoru.
Stáhněte si databázi použitou v tomto kurzu