【mysql】去oracle REGEXP_LIKE()函数替换

示例为mybatis .xml文件中的截取片段

oracle用法示例,card_keywords为表中字段,#{keywords}是java vo类中的属性

select * from table_test where
REGEXP_LIKE (card_keywords,#{keywords}, 'i')

REGEXP_LIKE 函数第三项为

match_ parameter, 匹配选项。取值范围: i: 大小写不敏感;C:大小写敏感; n:点号.不匹配换行符号; m:多行模式;x:扩展模式,忽略正则表达式中的空白字符。

替换方案

mysq| like

mysq|默认不区分大小写,所以如果是为'i'的情况下可以直接写like coun

select * from table_test where
card_keywords like concat('%',#{keyWord},'%')

但事实如果是为'C'大小写敏感的情况下 就需要在like的字段名字前加上一个binary

select * from table_test where binary
card_keywords like concat('%',#{keyWord},'%')

还有一种使用like但是区分大小写的方案是,在创建表的后面添加

character set latin1 collate latin1_bin

该写法的详细解释见下文

MySQL模糊查询(like)时区分大小写 - [0] - 博客园

但是可读性会变差,一般不推荐修改这些默认值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值