本文介绍: 在XML配置的MyBatis中处理LIKE查询时,如果前端传递的值中包含了下划线_,并且你想要这个下划线被视为普通字符而不是SQL的单字符通配符,你需要在MyBatis的XML映射文件中对这个字符进行转义。在这个例子中,REPLACE(#{pattern}, ‘_’, ‘\_’)函数将传入的参数中的所有下划线_替换为转义后的下划线\_。如果这种字符不经过处理,并且你的模糊查询sql语句书写如下,那么在你的前端页面搜索框中输入下划线或者百分号时候,搜索到的数据就是全量数据,未达到我们的预期。
MySQL中,_和%在LIKE模糊匹配中有特殊的含义:
如果这种字符不经过处理,并且你的模糊查询sql语句书写如下,那么在你的前端页面搜索框中输入下划线或者百分号时候,搜索到的数据就是全量数据,未达到我们的预期。
如何将这种特殊字符变成普通字符而不是 sql的单字符通配符?
在XML配置的MyBatis中处理LIKE查询时,如果前端传递的值中包含了下划线_,并且你想要这个下划线被视为普通字符而不是SQL的单字符通配符,你需要在MyBatis的XML映射文件中对这个字符进行转义。
在MyBatis中,你可以使用<![CDATA[]]>区块来避免XML解析错误,并在SQL查询中使用\来转义下划线。这里是一个如何在XML映射文件中处理这种情况的例子:
在这个例子中,REPLACE(#{pattern}, ‘_’, ‘\_’)函数将传入的参数中的所有下划线_替换为转义后的下划线\_。CONCAT函数用于在参数的前后添加百分号%作为通配符。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。