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>
相关推荐
cjy0001112 小时前
SpringBoot(整合MyBatis + MyBatis-Plus + MyBatisX插件使用)
spring boot·tomcat·mybatis
woshilys2 小时前
sql server 修改字段not null到null
数据库·sqlserver
Zzxy2 小时前
MyBatis-Plus入门
java·mybatis
华科易迅5 小时前
Spring AOP(XML最终+环绕通知)
xml·java·spring
莫爷8 小时前
JSON vs XML vs YAML 深度对比:如何选择合适的数据格式?
xml·前端·json
华科易迅8 小时前
Spring AOP(XML后置+异常通知)
xml·java·spring
givemeacar1 天前
Spring Boot中集成MyBatis操作数据库详细教程
数据库·spring boot·mybatis
小江的记录本1 天前
【Bean】JavaBean(原生规范)/ Spring Bean 【重点】/ 企业级Bean(EJB/Jakarta Bean)
java·数据库·spring boot·后端·spring·spring cloud·mybatis
bearpping1 天前
Spring Boot 整合 MyBatis 与 PostgreSQL 实战指南
spring boot·postgresql·mybatis
不吃香菜学java1 天前
苍穹外卖-菜品分页查询
数据库·spring boot·tomcat·log4j·maven·mybatis