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:
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:
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
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:
Iată un alt exemplu:
SELECT * FROM Book WHERE name LIKE '%Beginner_';
Aceasta returnează următoarele:
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:
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:
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)
- Din bara de navigare din stânga, faceți clic pe Baze de date.
- Faceți clic pe Demo.
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.
Ar trebui să returneze următoarele:
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.
Ar trebui să returneze următoarele:
Folosind _ wildcard
Pas 1) Conectați-vă la contul dvs. pgAdmin.
Pas 2)
- Din bara de navigare din stânga, faceți clic pe Baze de date.
- Faceți clic pe Demo.
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.
Ar trebui să returneze următoarele:
Pas 5) Pentru a rula al doilea exemplu:
- Tastați următoarea interogare în editorul de interogări:
SELECT * FROM Book WHERE name LIKE '%Beginner_';
- Faceți clic pe butonul Execute.
Ar trebui să returneze următoarele:
Folosind NOT OperaTdR
Pas 1) Conectați-vă la contul dvs. pgAdmin.
Pas 2)
- Din bara de navigare din stânga, faceți clic pe Baze de date.
- Faceți clic pe Demo.
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.
Ar trebui să returneze următoarele:
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.
Ar trebui să returneze următoarele:
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.