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>
相关推荐
ruleslol3 小时前
Mybatis11-不同的数据库连接池的配置
数据库·mybatis
干到60岁退休的码农4 小时前
整合Mybatis-Plus分页插件并实现分页api方法
java·mybatis
han_hanker5 小时前
mybatis-plus 常用方法
java·tomcat·mybatis
李少兄5 小时前
MyBatis、MyBatis-Plus 与全自动 ORM 的本质区别
mybatis
干到60岁退休的码农5 小时前
SpringBoot整合Mybatis-plus
spring boot·后端·mybatis
4154116 小时前
MyBatis-Plus + PostGIS 实战(二):空间查询与空间索引
java·mybatis·gis·postgis
AgCl236 小时前
JavaWeb个人笔记01--Maven到MyBatis
笔记·maven·mybatis
C137的本贾尼7 小时前
第九篇:微服务与分布式——把一个大系统拆成多个小服务
xml·spring boot·后端
倒流时光三十年1 天前
MyBatis @MapKey 注解详解
windows·mybatis
龙仔7252 天前
SQL Server 批量多库只读账号一键脚本(带逐行注释完整脚本 + 分段逐句详细解释)
服务器·数据库·sql·sqlserver·dba