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>
相关推荐
。小二16 小时前
springboot3实现aop多数据源结合mybatis-plus-boot-starter
java·spring boot·spring·mybatis
CUIYD_198916 小时前
MyBatis 的一级缓存
java·缓存·mybatis
Hui Baby17 小时前
回顾-springboot自定义xml
xml·java·spring boot
期待のcode19 小时前
MyBatis-Plus提供的核心注解
java·数据库·spring boot·后端·mybatis
SadSunset21 小时前
(10)MyBatis的日志工厂(了解即可后续集成spring)
java·spring·mybatis
江沉晚呤时21 小时前
SQL Server 存储过程:从入门到精通
java·服务器·数据库·sqlserver
专注VB编程开发20年21 小时前
最快速度取最新一条数据-Mysql,Sql server,access数据库
数据库·sql·mysql·oracle·sqlserver·access
小二·1 天前
MyBatis基础入门《五》接口方式:Insert、Update、Delete 操作详解
mybatis
小二·1 天前
MyBatis基础入门《四》接口方式:Select查询集合
mybatis
开始了码2 天前
XML文件介绍和QT相关操作
xml·qt