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

โšก Rรฉsumรฉ intelligent

PostgreSQL LIKE compare du texte ร  des modรจles en utilisant deux caractรจres gรฉnรฉriques : le signe pourcentage et le trait de soulignement. Ce tutoriel explique comment utiliser LIKE et NOT LIKE dans les instructions SELECT, avec des exemples concrets en psql et pgAdmin pour chaque cas.

  • ๐Ÿ” Core Operator: LIKE compare une colonne ou une expression ร  un modรจle gรฉnรฉrique et renvoie vrai en cas de correspondance.
  • ???? Deux jokers : % correspond ร  zรฉro ou plusieurs caractรจres ; _ correspond exactement ร  un caractรจre.
  • โœ‹ Correspondance inverse : Combinez NOT et LIKE pour renvoyer les lignes qui rรฉpondent ร  ces critรจres. pas Respectez le modรจle.
  • ๏ธ Deux interfaces : Exรฉcutez les mรชmes requรชtes depuis la ligne de commande psql ou graphiquement dans pgAdmin.
  • (I.e. Personnage d'รฉvasion : Utilisez la clause ESCAPE pour faire correspondre les caractรจres littรฉraux % ou _ ร  l'intรฉrieur du modรจle.
  • ๐Ÿค– Boost IA : Les outils de bases de donnรฉes IA traduisent les besoins de recherche en langage clair en modรจles LIKE et suggรจrent ILIKE lorsqu'une correspondance insensible ร  la casse est requise.

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

Le PostgreSQL COMME L'opรฉrateur LIKE compare les valeurs textuelles ร  des modรจles ร  l'aide de caractรจres gรฉnรฉriques. Si l'expression de recherche correspond au modรจle, LIKE renvoie trueLes caractรจres gรฉnรฉriques fonctionnent dans le WHERE clause de SELECT, UPDATE, INSERT, DELETE.

Quels sont PostgreSQL Des jokers ?

PostgreSQL prend en charge deux caractรจres gรฉnรฉriques LIKE :

  • Signe de pourcentage (%): Correspond ร  zรฉro, un ou plusieurs caractรจres ou chiffres.
  • Soulignement (_): correspond exactement ร  un caractรจre ou un chiffre.

Les deux symboles peuvent รชtre combinรฉs au sein d'un mรชme motif. Si LIKE est utilisรฉ sans aucun caractรจre gรฉnรฉrique, il se comporte comme le signe รฉgal (=) opรฉrateur.

PostgreSQL Syntaxe LIKE

La syntaxe de base de LIKE est :

expression LIKE pattern [ ESCAPE 'escape-character' ]
  • expression โ€” une expression de caractรจres, gรฉnรฉralement un nom de colonne ou de champ.
  • modรจle โ€” une expression de caractรจres contenant des caractรจres gรฉnรฉriques.
  • caractรจre d'รฉchappement โ€” facultatif. Permet de faire correspondre littรฉralement % or _ caractรจres. Lorsqu'il est omis, la barre oblique inverse (\) est le caractรจre d'รฉchappement par dรฉfaut.

PostgreSQL J'AIME avec le symbole gรฉnรฉrique %

Le % Le signe correspond ร  zรฉro, un ou plusieurs caractรจres. Prenons l'exemple suivant. Book table:

Tableau de livre d'exemples utilisรฉ dans les exemples LIKE

Pour trouver les livres dont le titre commence par ยซ Lear ยป, exรฉcutez la requรชte ci-dessous.

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

La requรชte renvoie :

LIKE Lear% rรฉsultat de la requรชte renvoyant des livres correspondants

Pour trouver des livres dont le titre contient ยซ par ยป nโ€™importe oรน :

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

La requรชte renvoie :

Rรฉsultat de la requรชte LIKE %by% avec livres correspondants

PostgreSQL J'AIME avec le caractรจre gรฉnรฉrique _

Le _ Le signe correspond ร  un seul caractรจre. La requรชte suivante trouve les noms dont le premier caractรจre est une lettre unique, suivie de ยซ earn ยป puis dโ€™un suffixe quelconque :

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

La requรชte renvoie :

Rรฉsultat de requรชte LIKE _earn% avec un prรฉfixe d'un seul caractรจre correspondant

Autre exemple : faire correspondre tout texte se terminant par ยซ Dรฉbutant ยป suivi dโ€™un caractรจre supplรฉmentaire :

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

La requรชte renvoie :

LIKE %Beginner_ rรฉsultat de requรชte correspondant au dernier caractรจre unique

PostgreSQL PAS COMME Operator

Combinez LIKE et NOT pour renvoyer les lignes qui correspondent. pas Respectez le modรจle. Par exemple, listez tous les livres dont le titre ne commence pas par ยซ Post ยป :

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

La requรชte renvoie :

PAS COMME Post% rรฉsultat excluant les livres qui commencent par Post

Un seul livre remplit la condition. Maintenant, listez tous les livres dont le nom correspond ร  cette condition. pas contiennent le mot ยซ Fabriquรฉ ยป :

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

La requรชte renvoie :

PAS COMME le rรฉsultat de %Made% qui renvoie trois livres correspondants

Trois lignes satisfont ร  la condition.

Utilisation de LIKE avec pgAdmin

Ces mรชmes requรชtes peuvent รฉgalement รชtre exรฉcutรฉes graphiquement dans l'outil de requรชtes de pgAdmin.

% Caractรจre gรฉnรฉrique dans pgAdmin

ร‰tape 1) Connectez-vous ร  pgAdmin.

ร‰tape 2) Dans la barre de navigation ร  gauche, cliquez sur Bases de donnรฉes, puis clique Demo.

Arborescence de navigation pgAdmin avec bases de donnรฉes et dรฉmo รฉtendue

ร‰tape 3) Saisissez la requรชte dans l'รฉditeur de requรชtes :

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

ร‰tape 4) Cliquez ร  nouveau Exรฉcution.

Outil de requรชte pgAdmin avec le bouton Exรฉcuter de la barre d'outils

Le volet de rรฉsultats affiche les livres correspondants :

Volet de rรฉsultats pgAdmin pour la requรชte LIKE Lear%

Pour rechercher un livre dont le titre contient ยซ par ยป :

ร‰tape 1) Saisissez ce qui suit dans l'รฉditeur de requรชtes :

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

ร‰tape 2) Cliquez ร  nouveau Exรฉcution.

L'outil de requรชte pgAdmin exรฉcute une requรชte LIKE %by%

Le volet des rรฉsultats affiche :

Volet de rรฉsultats pgAdmin pour la requรชte LIKE %by%

_ Caractรจre gรฉnรฉrique dans pgAdmin

ร‰tape 1) Connectez-vous ร  pgAdmin.

ร‰tape 2) Dans la barre de navigation ร  gauche, cliquez sur Bases de donnรฉes, puis clique Demo.

Arborescence de navigation pgAdmin affichant l'arborescence des bases de donnรฉes

ร‰tape 3) Saisissez la requรชte dans l'รฉditeur de requรชtes :

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

ร‰tape 4) Cliquez ร  nouveau Exรฉcution.

L'outil de requรชte pgAdmin exรฉcute une requรชte LIKE _earn%

Le volet des rรฉsultats affiche :

Volet de rรฉsultats pgAdmin pour la requรชte LIKE _earn%

ร‰tape 5) Exรฉcutez le deuxiรจme exemple :

  1. Saisissez la requรชte dans l'รฉditeur de requรชtes :
SELECT *
FROM
   Book
WHERE
   name LIKE '%Beginner_';
  1. Cliquez ร  nouveau Exรฉcution.

L'outil de requรชte pgAdmin exรฉcute une requรชte de type %Beginner_

Le volet des rรฉsultats affiche :

Volet de rรฉsultats pgAdmin pour la requรชte LIKE %Beginner_

PAS COMME dans pgAdmin

ร‰tape 1) Connectez-vous ร  pgAdmin.

ร‰tape 2) Dans la barre de navigation ร  gauche, cliquez sur Bases de donnรฉes, puis clique Demo.

Arborescence de navigation pgAdmin pour l'exemple ยซ NE PAS AIMER ยป

ร‰tape 3) Pour afficher la liste de tous les livres dont le titre ne commence pas par ยซ Post ยป, tapez :

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

ร‰tape 4) Cliquez ร  nouveau Exรฉcution.

L'outil de requรชte pgAdmin n'exรฉcute PAS une requรชte Post%

Le volet des rรฉsultats affiche :

Volet de rรฉsultats pgAdmin pour la requรชte NOT LIKE Post%

Dรฉtails supplรฉmentaires des rรฉsultats pgAdmin pour la requรชte NOT LIKE

Liste des livres dont le titre ne contient pas le mot ยซ Fabriquรฉ ยป :

ร‰tape 1) Saisissez ce qui suit dans l'รฉditeur de requรชtes :

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

ร‰tape 2) Cliquez ร  nouveau Exรฉcution.

L'outil de requรชte pgAdmin exรฉcute une requรชte qui n'est PAS COMME %Made%

Le volet des rรฉsultats affiche :

Volet de rรฉsultats pgAdmin pour la requรชte NOT LIKE %Made%

Tรฉlรฉchargez la base de donnรฉes utilisรฉe dans ce tutoriel.

FAQ

LIKE est sensible ร  la casse, tandis que ILIKE effectue une correspondance insensible ร  la casse. ILIKE est un PostgreSQL Extension. Par exemple, le nom ILIKE 'lear%' correspond ร  ยซ Learn ยป et ยซ LEAR ยป. Utilisez ILIKE lorsque la casse de la saisie utilisateur est imprรฉvisible.

Utilisez la clause ESCAPE pour dรฉclarer un caractรจre d'รฉchappement, puis prรฉfixez-le avec le caractรจre gรฉnรฉrique littรฉral. Par exemple, WHERE code LIKE '50!%%' ESCAPE '!' trouve les valeurs commenรงant par ยซ 50% ยป car le point d'exclamation permet d'รฉchapper le signe pourcentage.

Utilisez LIKE pour les correspondances simples de prรฉfixes, suffixes ou sous-chaรฎnes. Passez aux expressions rรฉguliรจres POSIX (~ et ~*) lorsque vous avez besoin de classes de caractรจres, d'alternatives ou de quantificateurs. Les expressions rรฉguliรจres sont plus puissantes, mais gรฉnรฉralement plus lentes que LIKE pour les motifs simples.

Oui. AI Des assistants tels que les copilotes text-to-SQL traduisent des invites comme ยซ trouver les clients dont l'adresse e-mail contient acme ยป en name LIKE '%acme%' et expliquent la logique des caractรจres gรฉnรฉriques, accรฉlรฉrant ainsi la gรฉnรฉration de rapports ad hoc.

L'IA gรฉnรฉrative analyse le plan de requรชte, recommande un index trigramme (pg_trgm) pour les recherches LIKE avec caractรจre gรฉnรฉrique en dรฉbut de chaรฎne et rรฉรฉcrit les motifs qui empรชchent l'utilisation de l'index. Ainsi, les analyses complรจtes de table sont transformรฉes en recherches de quelques millisecondes sur les grandes tables. PostgreSQL les tables.

Rรฉsumez cet article avec :