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>
相关推荐
青云计划7 小时前
知光项目知文发布模块
java·后端·spring·mybatis
Hx_Ma1611 小时前
Springboot整合mybatis注解版
java·spring boot·mybatis
JavaLearnerZGQ20 小时前
MyBatis的一级缓存和二级缓存
缓存·mybatis
山岚的运维笔记20 小时前
SQL Server笔记 -- 第42章:逻辑函数
java·服务器·笔记·sql·microsoft·sqlserver
星川皆无恙21 小时前
基于Spring + SpringMVC + MyBatis图书馆管理系统设计可视化分析系统
java·大数据·数据库·后端·spring·mybatis
重生之后端学习21 小时前
Maven基础
java·spring boot·spring·html·maven·mybatis
无尽的沉默1 天前
SpringBoot整合MyBatis
spring boot·后端·mybatis
tctctttccc3 天前
不属于c2c电子商务模式的网站是:成功案例与发展优势详解
utf-8·mybatis·ssm·配置·整合
❀͜͡傀儡师3 天前
使用国产开源企业级文件管理系统基于 Spring Boot 3.5.x + Sa-Token + MyBatis Flex
spring boot·开源·mybatis