Dans postgresql, comment remplacer toutes les instances d'une chaîne dans une colonne de base de données?
Disons que je veux remplacer toutes les instances de cat
avec dog
, par exemple.
Quelle est la meilleure façon de procéder?
postgresql
replace
marque
la source
la source
Réponses:
Vous souhaitez utiliser la fonction de remplacement de postgresql :
par exemple :
Soyez conscient, cependant, que ce sera un remplacement de chaîne à chaîne, donc «catégorie» deviendra «dogegory». la fonction regexp_replace peut vous aider à définir un modèle de correspondance plus strict pour ce que vous souhaitez remplacer.
la source
regexp_replace
La voie de l'expression régulière
Si vous avez besoin d'une correspondance de remplacement plus stricte, la
regexp_replace
fonction de PostgreSQL peut correspondre en utilisant des modèles d'expression régulière POSIX. Il a la syntaxe regexp_replace (source, modèle, remplacement [, drapeaux]) .J'utiliserai respectivement des drapeaux
i
etg
pour la correspondance insensible à la casse et globale. J'utiliserai également\m
et\M
pour faire correspondre le début et la fin d'un mot, respectivement.Il y a généralement pas mal de problèmes lors du remplacement de regex. Voyons à quel point il est facile de remplacer un chat par un chien .
Même après tout cela, il y a au moins une condition non résolue. Par exemple, les phrases commençant par "Cat" seront remplacées par "dog" en minuscules, ce qui casse la mise en majuscule des phrases.
Consultez les documents de correspondance de modèles PostgreSQL actuels pour tous les détails.
Mettre à jour la colonne entière avec un texte de remplacement
Compte tenu de mes exemples, l'option la plus sûre serait peut-être:
la source
Vous pouvez utiliser la
replace
fonctionLa définition de la fonction est la suivante (obtenue à partir d' ici ):
et renvoie le texte modifié. Vous pouvez également consulter ce violon sql .
la source
Voici un exemple qui remplace toutes les instances de 1 ou plusieurs espaces blancs dans une colonne par un trait de soulignement à l'aide d'une expression régulière -
la source