PostgreSQL LIKE, Not Like, Wildcards (%, _ ) Exemple


PostgreSQL Operatorul LIKE ne ajută să potrivim valorile textului cu modele folosind metacaractere. Este posibilă potrivirea expresiei de căutare cu expresia modelului.

Dacă apare o potrivire, operatorul LIKE returnează true. Cu ajutorul operatorului LIKE, este posibil să se utilizeze wildcards în clauza WHERE a instrucțiunilor SELECT, UPDATE, INSERT sau DELETE.

Wild cards

Există doar două wildcards care pot fi folosite împreună cu

  • semn procentual (%)
  • Sublinia (_)

Semnul procentual (%) este folosit pentru a reprezenta zero, unul sau mai multe caractere sau numere.

Caracterul de subliniere (_) este folosit pentru a reprezenta un caracter sau un număr. Aceste simboluri pot fi, de asemenea, combinate. Dacă operatorul LIKE nu este folosit împreună cu aceste două semne, acesta va acționa ca operatorul egal.

Sintaxă

Iată sintaxa operatorului LIKE:

expression LIKE pattern [ ESCAPE 'escape-character' ]

Expresia este o expresie de caracter ca o coloană sau un câmp.

Modelul este o expresie de caracter cu potrivire de model.

Caracterul de evacuare este un parametru opțional. Permite testarea instanțelor literale ale caracterelor wildcard, cum ar fi % și _. Dacă nu este furnizat, \ va fi folosit ca caracter de escape.

Folosind % wildcard

După cum am menționat mai devreme, semnul % se potrivește cu zero, unul sau mai multe caractere sau numere. Luați în considerare următorul tabel:

Carte:

Folosind % wildcard

Dorim ca cartea al cărei nume este ca „Lear...” să obțină acel rezultat, putem rula următoarea comandă:

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

Aceasta va returna următoarele:

Folosind % wildcard

Cartea a fost găsită.

Să căutăm o carte „de” în numele ei:

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

Aceasta va returna următoarele:

Folosind % wildcard

Folosind _ wildcard

După cum am spus mai devreme, semnul _ reprezintă un caracter sau un număr. Poate fi folosit așa cum se arată mai jos:

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

Aceasta returnează următoarele:

Folosind _ wildcard

Iată un alt exemplu:

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

Aceasta returnează următoarele:

Folosind _ wildcard

Folosind NOT OperaTdR

Când operatorul LIKE este combinat cu operatorul NOT, este returnat orice rând care nu se potrivește cu modelul de căutare. De exemplu, pentru a vedea o carte al cărei nume nu începe cu „post”, putem rula următoarea comandă:

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

Aceasta returnează următoarele:

Folosind NOT OperaTdR

O singură carte a îndeplinit condiția de căutare. Să vedem lista de nume de cărți care nu au un cuvânt „Facut”:

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

Aceasta returnează următoarele:

Folosind NOT OperaTdR

3 rânduri au îndeplinit condiția de căutare.

Folosind pgAdmin

Acum să vedem cum pot fi efectuate acțiunile folosind pgAdmin.

Folosind % wildcard

Pas 1) Conectați-vă la contul dvs. pgAdmin.

Pas 2)

  1. Din bara de navigare din stânga, faceți clic pe Baze de date.
  2. Faceți clic pe Demo.

Utilizarea pgAdmin cu % wildcard

Pas 3) Introduceți interogarea în editorul de interogări:

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

Pas 4) Faceți clic pe butonul Execute.

Utilizarea pgAdmin cu % wildcard

Ar trebui să returneze următoarele:

Utilizarea pgAdmin cu % wildcard

Pentru a căuta o carte „de” în numele ei:

Pas 1) Tastați următoarea comandă în editorul de interogări:

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

Pas 2) Faceți clic pe butonul Execute.

Utilizarea pgAdmin cu % wildcard

Ar trebui să returneze următoarele:

Utilizarea pgAdmin cu % wildcard

Folosind _ wildcard

Pas 1) Conectați-vă la contul dvs. pgAdmin.

Pas 2)

  1. Din bara de navigare din stânga, faceți clic pe Baze de date.
  2. Faceți clic pe Demo.

Utilizarea pgAdmin cu _ wildcard

Pas 3) Introduceți interogarea în editorul de interogări:

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

Pas 4) Faceți clic pe butonul Execute.

Utilizarea pgAdmin cu _ wildcard

Ar trebui să returneze următoarele:

Utilizarea pgAdmin cu _ wildcard

Pas 5) Pentru a rula al doilea exemplu:

  1. Tastați următoarea interogare în editorul de interogări:
    SELECT *
    FROM
       Book
    WHERE
       name LIKE '%Beginner_';
    
  2. Faceți clic pe butonul Execute.

Utilizarea pgAdmin cu _ wildcard

Ar trebui să returneze următoarele:

Utilizarea pgAdmin cu _ wildcard

Folosind NOT OperaTdR

Pas 1) Conectați-vă la contul dvs. pgAdmin.

Pas 2)

  1. Din bara de navigare din stânga, faceți clic pe Baze de date.
  2. Faceți clic pe Demo.

Folosind NOT Operator în pgAdmin

Pas 3) Pentru a vedea toate cărțile ale căror nume nu încep cu „Postează”, tastați interogarea în editorul de interogări:

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

Pas 4) Faceți clic pe butonul Execute.

Folosind NOT Operator în pgAdmin

Ar trebui să returneze următoarele:

Folosind NOT Operator în pgAdmin

Folosind NOT Operator în pgAdmin

Pentru a vedea lista de cărți ale căror nume nu au cuvântul „Made”:

Pas 1) Tastați următoarea interogare în editorul de interogări:

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

Pas 2) Faceți clic pe butonul Execute.

Folosind NOT Operator în pgAdmin

Ar trebui să returneze următoarele:

Folosind NOT Operator în pgAdmin

Rezumat

  • PostgreSQL LIKE este folosit pentru potrivirea valorilor textului cu modele folosind caractere joker.
  • Clauza LIKE ne permite să folosim wildcards în SELECTinstrucțiunile , UPDATE, INSERT sau DELETE.
  • Caracterul joker % se potrivește cu una sau mai multe valori. Valorile pot fi numere sau caractere.
  • Caracterul _ se potrivește exact cu o valoare. Valoarea poate fi un caracter sau un număr.
  • Operatorul LIKE poate fi combinat cu operatorul NOT pentru a returna orice rând care nu se potrivește cu modelul de căutare.

Descărcați baza de date folosită în acest tutorial

Citește mai mult Readmore