sql >> Database teknologi >  >> RDS >> PostgreSQL

Fjerne/erstate specialtegn i kolonneværdier?

Du kan bruge regexp_replace funktion til kun at venstrestille cifrene og bogstaverne, sådan her:

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

Hvilket betyder, at alt, der ikke er et ciffer eller et bogstav eller en understregning, vil blive erstattet af ingenting (det inkluderer -, space, dot, comma osv.).

Hvis du også vil inkludere _ skal erstattes (\w vil forlade det) kan du ændre regex til [^\w]+|_ .

Eller hvis du vil være streng med de tegn, der skal fjernes, bruger du:[- ]+ i dette tilfælde her en tankestreg og et mellemrum.

Også som foreslået af Luiz Signorelly du kan bruge til at erstatte alle forekomster:

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


  1. Returnerer en Min() og et andet felt?

  2. Særskilt på kun én kolonne - vis kun FØRSTE dubletrække

  3. MySQL-afrundingsfunktioner

  4. Slet MySQL-oplysninger i tabel ved hjælp af Cron-job