经过本人自己研究,oracle可以使用REGEXP_REPLACE()正则替换的方法对需要替换的值进行修改,也就是
SELECT id, REGEXP_REPLACE(col,'正则表达式','') FROM a WHERE CV_DISPLAY_FIELDS LIKE '%9%';
当9位于头部时,使用
SELECT id, REGEXP_REPLACE(col,'^(9)[^\d];?','') FROM a WHERE col LIKE '%9%';
当9位于中部时,使用
SELECT id, REGEXP_REPLACE(col,'[^\d](9)[^\d];?' , ',') FROM a WHERE col LIKE '%9%';
当9位于尾部时,使用
SELECT id, REGEXP_REPLACE(col,'[^\d](3)$;?' , ',') FROM a WHERE col LIKE '%9%';
这样子就可以update所以需要更改的项目
ps:oracle不能使用正则表达式的零宽断言与负向零宽断言,不然将正则表达式设置为'(?<[0-9])(0)(?[0-9]);?',一个update就可以解决所以情况了,不过oracle好像不支持。所以只能分三种情况解决
update tablename t set t.col = replace(t.col,'9','')
mysql版本的
别想复杂了,就是替换操作。一楼的replace是方法之一。