描述:在日常开发或者运维工作中涉及到对数据库数据的清理,普通的子串替换显然力不从心,掌握正则替换和查询尤为重要。
相关问题:数据库字段数据清理|否定正则查询|正则中文字符集
例题:
①:正则替换处理:王老6【00】(22)\【00】(22)王老6\【00】王老(22)6
select regexp_replace(name,"\【[0-9]+\】+|\([0-9]+\)+|[0-9]+|\s+",'')
FROM #{tablename};
分析:特殊字符通过’‘转义,数字通过字符集匹配[],1…*匹配用’+’,空格匹配’\s’
②:正则查询:匹配中文
-- ^在方括号表达式中使用时,表示不接受该方括号表达式中的字符集合
SELECT * from #{tablename}
WHERE regexp_like(name,'^[\x00-\xff]');
③:否定正则查询
SELECT * from #{tablename}
WHERE regexp_like(name,'^[\x00-\xff]')!=1;
④:删除以5000开头数字串
DELETE FROM #{tablename}
WHERE regexp_like(id,'^5000[0-9]+');
版权声明:本文为weixin_53083143原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。