1、'^[\u4e00-\u9fa5]+$'
'^[\u4e00-\u9fa5]+$' 在mysql数据源可以匹配到数据,但是经常会报下面报错。而且oracle、达梦、pg很多数据库都不能正确匹配出洪文。
报错1
detailMessage = (disaggregated-cluster-cg1-0.disaggregated-cluster-cg1.doris-cluster.svc.cluster.local.)[INTERNAL_ERROR]Invalid regex expression: ^[\u4e00-\u9fa5]+$
报错2
detailMessage = (disaggregated-cluster-cg1-0.disaggregated-cluster-cg1.doris-cluster.svc.cluster.local.)[INTERNAL_ERROR]JdbcExecutorException: resultSet to get next error: | CAUSED BY: SQLException: The regular expression contains an [x-y] character range where x comes after y.
报错都是偶尔报错,可能执行5次,报错一次。网上解释是可能doris下推正则有问题,特别是doris引擎有多个节点,就更加容易报错
select * from test.test_a_100w
where name not regexp '^[\u4e00-\u9fa5]+$'
2、^[\\x{4e00}-\\x{9fa5}]+$
报错减少,但是mysql不能正确匹配中文。 oracle,达梦、pg等多种数据库可以正常匹配正文
select * from test.test_a_100w
where name not regexp '^[\\x{4e00}-\\x{9fa5}]+$' limit 10
3、 '^[一-龥]+$'
试了mysql、达梦、hanna、pg、sqlserver等多种数据源,都能够正常匹配正文,而且不报错
select EMP_ID as data_id,* from cecece.SCHEMA01.EMPLOYEES where EMP_NAME not regexp '^[一-龥]+$'
结论:
doris使用 '^[一-龥]+$' 匹配中文

被折叠的 条评论
为什么被折叠?



