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>
相关推荐
zc.z9 小时前
高并发在线考试系统稳定性保障方案
mybatis·高并发
gAlAxy...11 小时前
MyBatis-Plus 核心 CRUD 操作全解析:BaseMapper 与通用 Service 实战
java·开发语言·mybatis
好好研究11 小时前
MyBatis - Plus(二)常见注解 + 常见配置
数据库·spring boot·mybatis·mybatis plus
C#程序员一枚12 小时前
SqlServer如何创建全文索引
数据库·sqlserver
树码小子13 小时前
Mybatis(8)#{}和${}的区别,排序,模糊查询
mybatis
MX_935917 小时前
Spring xml 方式整合第三方框架总结加案例
xml·java·spring
在坚持一下我可没意见18 小时前
ideaPool论坛系统测试报告
java·spring boot·功能测试·selenium·jmeter·mybatis·压力测试
山岚的运维笔记18 小时前
SQL Server笔记 -- 第34章:cross apply
服务器·前端·数据库·笔记·sql·microsoft·sqlserver
知识分享小能手19 小时前
SQL Server 2019入门学习教程,从入门到精通,Transact-SQL数据的更新 —语法详解与实战案例(SQL Server 2019)(10)
数据库·学习·sqlserver
树码小子19 小时前
Mybatis(7)其他查询操作(多表查询)
spring boot·mybatis