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>
相关推荐
独自破碎E6 小时前
MyBatis Flex和MyBatis Plus的区别
java·开发语言·mybatis
小北方城市网6 小时前
MySQL 索引优化实战:从慢查询到高性能
数据库·spring boot·后端·mysql·rabbitmq·mybatis·java-rabbitmq
小北方城市网8 小时前
生产级 Spring Boot + MyBatis 核心配置模板
java·spring boot·redis·后端·spring·性能优化·mybatis
二等饼干~za89866810 小时前
Geo优化源码开发:关键技术解析与实践
数据库·sql·重构·mybatis·音视频
sunnyday042611 小时前
Spring Boot 日志配置详解:log4j2.xml 的完整配置指南
xml·spring boot·log4j
WZTTMoon11 小时前
MyBatis SQL执行流程详解
sql·mybatis
消失的旧时光-194311 小时前
第六课 · 6.1 从 JDBC 到 MyBatis:SQL 工程化是如何发生的?
java·sql·mybatis
熊出没12 小时前
关于MyBatis Mapper 接口与 XML 映射机制的分析
xml·microsoft·mybatis
小北方城市网13 小时前
MyBatis 进阶实战:插件开发与性能优化
数据库·redis·python·elasticsearch·缓存·性能优化·mybatis
曲幽13 小时前
从0到1掌握SQL Server可编程性:让数据自己动起来
sql·sqlserver·delete·insert·function·update·trigger·procedure