sql >> Databáze >  >> RDS >> PostgreSQL

Odebrat/nahradit speciální znaky v hodnotách sloupců?

Můžete použít regexp_replace funkce ponechat pouze číslice a písmena, například takto:

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

Což znamená, že vše, co není číslice, písmeno nebo podtržítko, nebude nahrazeno ničím (včetně -, space, dot, comma , atd.).

Pokud chcete zahrnout také _ který má být nahrazen (\w jej opustí) můžete změnit regulární výraz na [^\w]+|_ .

Nebo pokud chcete být přísní na znaky, které je třeba odstranit, použijte:[- ]+ v tomto případě zde pomlčku a mezeru.

Také jak navrhuje Luiz Signorelly můžete použít k nahrazení všech výskytů:

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


  1. Mysql NENÍ IN a NEEXISTUJE stejné?

  2. Jak vytvořit databázi v MySQL

  3. Odstranění řádku s vnitřním spojením

  4. Node.js, Request, MySQL a Connection Pooling vedou k nekonečnému blokování/zmrazování?