J'ai actuellement la requête suivante:
select regexp_matches(name, 'foo') from table;
Comment puis-je réécrire cela afin que l'expression régulière soit dans le cas où comme suit (ne fonctionne pas):
select * from table where regexp_matches(name, 'foo');
Le message d'erreur actuel est: ERREUR: l'argument de WHERE doit être de type booléen, pas de texte [] État SQL: 42804 Caractère: 29
Écrivez à la place:
select * from table where name ~ 'foo'
L'opérateur "~" produit un résultat booléen pour savoir si l'expression régulière correspond ou non plutôt que d'extraire les sous-groupes correspondants.
Utilisez simplement l'opérateur de correspondance ici:
select * from table where name ~ 'foo';