postgresql - remplacer toutes les occurrences d'une chaîne à l'intérieur du champ de texte
Dans postgresql, comment puis-je remplacer toutes les occurrences d'une chaîne dans une base de données de la colonne?
Dire que je veux remplacer toutes les instances de cat
avec dog
, par exemple.
Quelle est la meilleure façon de le faire?
- Si googler échoue, essayez le manuel: postgresql.org/docs/current/static/functions-string.html
Vous devez vous connecter pour publier un commentaire.
Vous souhaitez utiliser postgresql est remplacer fonction:
par exemple :
Être conscient, cependant, que ce sera une chaîne de caractères chaîne de remplacement, ainsi, 'category' deviendra 'dogegory'. le regexp_replace fonction peuvent vous aider à définir le plus strict correspond au motif de ce que vous souhaitez remplacer.
regexp_replace
L'Expression Régulière Façon
Si vous avez besoin plus strictes de remplacement correspondant, PostgreSQL est
regexp_replace
fonction de correspondance à l'aide POSIX modèles d'expressions régulières. Il a la syntaxe regexp_replace(source, le motif de remplacement [, flags ]).Je vais utiliser des drapeaux
i
etg
pour la casse et global correspondant, respectivement. Je vais aussi utiliser\m
et\M
d'correspondent au début et à la fin d'un mot, respectivement.Il y a généralement tout à fait quelques erreurs lors de l'exécution de la regex de remplacement. Nous allons voir comment il est facile de remplacer un chat avec un chien.
Même après tout cela, il y a au moins un suspens condition. Par exemple, des phrases qui commencent par "Chat", sera remplacé par un bas-de-casse "chien" qui casse majuscule.
Découvrez le courant PostgreSQL le pattern matching docs pour tous les détails.
Mise à jour de toute la colonne de texte de remplacement
Donné mes exemples, peut-être l'option la plus sûre serait:
Vous pouvez utiliser le
replace
fonctionLa définition de la fonction est la suivante (obtenu à partir de ici):
et renvoie le texte modifié. Vous pouvez aussi consulter les ce sql violon.
Voici un exemple qui remplace toutes les occurrences de 1 ou plusieurs caractères espace blanc dans une colonne avec un trait de soulignement utilisation d'une expression régulière -