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>
相关推荐
❀͜͡傀儡师2 小时前
基于mybatis-plus进行加解密 Spring Boot Starter
spring boot·oracle·mybatis
csdn2015_4 小时前
mybatisplus自动生成id
java·mybatis
知识分享小能手5 小时前
SQL Server 2019入门学习教程,从入门到精通,SQL Server 2019 创建和使用索引 — 语法知识点及使用方法详解(12)
数据库·学习·sqlserver
山岚的运维笔记7 小时前
SQL Server笔记 -- 第50章 存储过程
数据库·笔记·sql·microsoft·oracle·sqlserver
知识分享小能手8 小时前
SQL Server 2019入门学习教程,从入门到精通,SQL Server 2019 规则、默认值和完整性约束 —— 语法详解与实战案例(11)
sql·学习·sqlserver
xEurCjvwu9 小时前
台达PLC与C#串口通信实现实时同步读写监控功能:配置地址以XML文件为基础动态生成控件
mybatis
LSL666_12 小时前
6 持久化
redis·mybatis·持久化·aof·rdb
哈库纳玛塔塔12 小时前
AI 时代,使用 dbVisitor 读写向量化数据
数据库·人工智能·mybatis
!chen12 小时前
基于 Spring Boot 3.5.x + Sa-Token + MyBatis 企业级文件管理系统
spring boot·后端·mybatis
csdn2015_13 小时前
mybatisplus 获得新增id
java·开发语言·mybatis