sql >> Databasteknik >  >> RDS >> PostgreSQL

Ta bort/ersätta specialtecken i kolumnvärden?

Du kan använda regexp_replace funktion till vänster endast siffrorna och bokstäverna, så här:

update mytable
   set myfield = regexp_replace(myfield, '[^\w]+','');

Vilket innebär att allt som inte är en siffra eller en bokstav eller en understrykning kommer att ersättas av ingenting (som inkluderar -, space, dot, comma osv.).

Om du också vill inkludera _ ska ersättas (\w lämnar det) kan du ändra regex till [^\w]+|_ .

Eller om du vill vara strikt med de tecken som måste tas bort använder du:[- ]+ i detta fall här ett streck och ett mellanslag.

Också som föreslagits av Luiz Signorelly du kan använda för att ersätta alla förekomster:

    update mytable
       set myfield = regexp_replace(myfield, '[^\w]+','','g');


  1. hur fungerar groupby and count i sql

  2. installera cx_oracle för python

  3. välj att uppdatera med distinkt mysql

  4. Ett skript för att ändra alla tabeller och fält till utf-8-bin-kollationen i MYSQL