Sqlserver 模糊查询中文及在mybatis xml【非中文不匹配查询】N@P2问题

问题

sqlserver模糊查询或相等,两者都无法查询。

百度方案解释

Like 后的N是表示unicode字符。获取SQL Server数据库中Unicode类型的数据时,字符串常量必须以大写字母 N 开头,否则字符串将转换为数据库的默认代码页(字符集编码),这可能导致字符串内容发生变化,无法识别。

在SQL界面中

sql 复制代码
select * from table where column like N'%文档%'

但是在mybatis这样就不好写了。

注意点

一定不要使用mybatis的where标签,否则mybatis会识别为N@P2
N后面必须用 '' + #{queryColumn} 这种格式

模糊查询

sql 复制代码
select * from table where 
<if test="queryColumn != null and queryColumn != ''">
	column like N'%'+#{queryColumn}+'%'
</if>

相等查询

结合上面,我们发现N后面不能直接拼接#{queryColumn}参数,否则就会报错!

sql 复制代码
select * from table where 
<if test="queryColumn != null and queryColumn != ''">
	column = N''+#{queryColumn}
</if>
相关推荐
前网易架构师-高司机16 小时前
带标注的驾驶员安全带识别数据集,识别率99.5%,可识别有无系安全带,支持yolo,coco json,pascal voc xml格式
xml·yolo·数据集·交通·安全带
莫寒清16 小时前
Mybatis的插件原理
面试·mybatis
逍遥德17 小时前
Maven教程.01- settings.xml 文件<profile>使用详解
xml·java·maven
莫寒清20 小时前
MyBatis 中动态 SQL 的作用
面试·mybatis
吹晚风吧21 小时前
实现一个mybatis插件,方便在开发中清楚的看出sql的执行及执行耗时
java·sql·mybatis
码云数智-大飞21 小时前
像写 SQL 一样搜索:dbVisitor 如何用 MyBatis 范式颠覆 ElasticSearch 开发
sql·elasticsearch·mybatis
逍遥德21 小时前
Maven教程.03-如何阅读pom.xml文件
xml·java·后端·maven
北京_小杰子21 小时前
Windows10本地安装SQLserver数据库连接的过程
数据库·windows·sqlserver·php
Mr__Miss2 天前
mybatisPlus分页组件3.5.15版本报错解决方案
mybatis
无名-CODING2 天前
MyBatis中#{}和${}完全指南:从原理到实战
mybatis