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>
相关推荐
码农阿豪1 天前
SQL Server数据迁移完成后,凌晨的数据库告警该怎么查?
数据库·sqlserver
真上帝的左手2 天前
30. 技术专题-‌应用框架组件-关系型数据库-MySQL-Mybatis
数据库·分布式·mysql·中间件·mybatis
雪芽蓝域zzs2 天前
第 2 章:整合 MySQL + MyBatis,搭建数据库基础、实体类、Mapper、测试查询
数据库·mysql·mybatis
实泽有之,无泽虚之2 天前
SQL Server数据库备份与还原详解
数据库·sqlserver
吃一碗粉只付一碗钱3 天前
16-SqlSugar多库ConfigId与按实体选连接
sqlserver·c#
wljt3 天前
公司二-面试题
java·开发语言·mybatis
VimorphTech3 天前
文本已经改了,旧的音频生成结果还能回写吗?
java·数据库·mybatis
麻瓜code3 天前
双写一致性:为什么是“删缓存“,而不是“改缓存“
java·缓存·mybatis
code2cat3 天前
Java工具篇之Maven:从pom.xml到测试通过的JAR
xml·java·maven
郭小李4 天前
mybatis 动态 sql
java·sql·mybatis