mysql包含换行符号空格like搜索

最近做一个站内信的功能,站内信的内容字段包含换行符号\n ,功能上又包含like,用户输入又不会输入换行符。
站内信内容如下:

您成功参与了【{userNick}】发起的拼团成为了团长 \n 邀请用户参团可赚【{money}】元

问题

包含换行符、空格、一些特殊字符,怎么like搜索

解决方式

  • 代码过滤用户输入的空格字符
  • 使用MySQL的REPLACE关键字
  • 结合MyBatis Plus实战
// 过滤搜索内容中的空格
String content = StringUtils.replace(reqQuerySiteMailTemplateVo.getContent(), " ", "");

// mybatis 拼接条件
if (StringUtils.isNotEmpty(reqQuerySiteMailTemplateBo.getContent())) {
	wrapper.apply("REPLACE(REPLACE(REPLACE(content, char(13), ''), char(10), ''),' ', '') LIKE '%" + reqQuerySiteMailTemplateBo.getContent() + "%'");
}
// 最后执行的sql
SELECT REPLACE
	( REPLACE ( content, CHAR ( 13 ), '' ), CHAR ( 10 ), '' ) 
FROM
	`site_mail_templates` 
WHERE
	REPLACE ( REPLACE ( REPLACE ( content, CHAR ( 13 ), '' ), CHAR ( 10 ), '' ), ' ', '' ) LIKE '%您成功参与了【{userA}】发起的拼团成为了团长邀请用户参团可赚【{money}】元%';

ASCII表

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值