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>
相关推荐
春蕾夏荷_72829772514 小时前
c++ 将xml数据写入sqlite数据库
xml·数据库
秦奈14 小时前
Unity复习学习随笔(六):XML数据
xml·学习
juma90021 天前
探索VSG并联:原理与实践
sqlserver
期待のcode1 天前
Wrapper体系中的condition参数
java·spring boot·后端·mybatis
期待のcode1 天前
MyBatis-Plus的Wrapper核心体系
java·数据库·spring boot·后端·mybatis
期待のcode2 天前
Springboot数据层开发—Springboot整合JdbcTemplate和Mybatis
spring boot·后端·mybatis
在坚持一下我可没意见2 天前
Spring 开发小白学习过程中常用通用配置文件,即拿即用!(持续更新中)
java·数据库·后端·学习·spring·tomcat·mybatis
m0_740043732 天前
SpringBoot03-Mybatis框架入门
java·数据库·spring boot·sql·spring·mybatis
jiayong232 天前
Spring XML解析与BeanDefinition注册详解
xml·java·spring
卓码软件测评2 天前
第三方数据库测试:【utPLSQL用于Oracle和tSQLt用于SQL Server数据库单元测试框架入门】
数据库·oracle·sqlserver·单元测试·mssql