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>
相关推荐
王了了哇12 小时前
【YOLO(txt)格式转VOC(xml)格式数据集】以及【制作VOC格式数据集 】
xml·python·yolo
我爱Jack19 小时前
Mybatis操作数据库(2)
java·数据库·mybatis
3D小将1 天前
从产品展示到工程设计:3DXML 转 STP 的跨流程数据转换技术解析
xml·3d
prinrf('千寻)1 天前
MyBatis-Plus 的 updateById 方法不更新 null 值属性的问题
java·开发语言·mybatis
admiraldeworm1 天前
Mysql、Oracle、Sql Server、达梦之间sql的差异
mysql·oracle·sqlserver·达梦
linab1122 天前
mybatis中的resultMap的association及collectio的使用
java·开发语言·mybatis
Code哈哈笑2 天前
【图书管理系统】用户注册系统实现详解
数据库·spring boot·后端·mybatis
Code哈哈笑2 天前
【基于Spring Boot 的图书购买系统】深度讲解 用户注册的前后端交互,Mapper操作MySQL数据库进行用户持久化
数据库·spring boot·后端·mysql·mybatis·交互
淡笑沐白2 天前
SQL Server 与 Oracle 常用函数对照表
数据库·oracle·sqlserver
lyrhhhhhhhh2 天前
MyBatis 延迟加载与缓存
sql·缓存·mybatis