Bạn có thể sử dụng regexp_replace
chỉ để lại các chữ số và chữ cái, như thế này:
update mytable
set myfield = regexp_replace(myfield, '[^\w]+','');
Điều đó có nghĩa là mọi thứ không phải là chữ số hoặc chữ cái hoặc gạch dưới sẽ không được thay thế bằng gì (bao gồm -, space, dot, comma
, v.v.).
Nếu bạn muốn bao gồm cả _
được thay thế (\w
sẽ để lại nó) bạn có thể thay đổi regex thành [^\w]+|_
.
Hoặc nếu bạn muốn chặt chẽ với các ký tự phải xóa, bạn sử dụng:[- ]+
trong trường hợp này, đây là dấu gạch ngang và dấu cách.
Cũng theo đề xuất của Luiz Signorelly bạn có thể sử dụng để thay thế tất cả các lần xuất hiện:
update mytable
set myfield = regexp_replace(myfield, '[^\w]+','','g');