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>
相关推荐
2601_949817723 小时前
Spring Boot3.3.X整合Mybatis-Plus
spring boot·后端·mybatis
untE EADO8 小时前
Tomcat的server.xml配置详解
xml·java·tomcat
LaLaLa_OvO9 小时前
mybatis 引用静态常量
java·mybatis
yaodong5189 小时前
Spring 中使用Mybatis,超详细
spring·tomcat·mybatis
2601_9498153311 小时前
Spring Boot中集成MyBatis操作数据库详细教程
数据库·spring boot·mybatis
zuowei288911 小时前
spring实例化对象的几种方式(使用XML配置文件)
xml·java·spring
星晨雪海11 小时前
若依框架原有页面功能进行了点位管理改造之列表查询(4)
数据库·sql·mybatis
mldlds13 小时前
Spring Boot 集成 MyBatis 全面讲解
spring boot·后端·mybatis
那个失眠的夜14 小时前
Spring整合Mybatis实现用户的CRUD
java·spring·mybatis
zjjsctcdl15 小时前
Spring Boot 整合 MyBatis 与 PostgreSQL 实战指南
spring boot·postgresql·mybatis