为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DMv8 20230417
【操作系统】:linux
【CPU】:8
【问题描述】*:业务层使用MySQL,现在在做达梦8兼容适配,遇到了一个模糊查询特殊字符的问题,场景是:
select a from B where c like '%xx_%';
目的实际是查匹配xx_列的行,MySQL可以通过转义下划线处理:
select a from B where c like '%xx_%';
碰到的问题是达梦不把反斜杠当作默认的转义符,需要指定转义符处理
select a from B where c like '%xx_%' escape '';
达梦是不是有办法指定一下默认的转义符,不然项目组要改不少地方。。
这个情况达梦是和ORACLE一致的,运行的和O一样。看了下DM在版本03134284094-20230919-202737-20067
优化了一个参数BACKSLASH_ESCAPE
用于控制反斜杠转义,但测试发现没凑效,目前暂时还是建议改代码加 ESCAPE 取解决,或者用regexp_like正则表达式去解决
社区也不认识我的反斜杠,直接反斜杠给吞了,上面的sql里面要在下划线前面反斜杠,达梦需要指定反斜杠