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>
相关推荐
码匠许师傅1 天前
【C++三方组件】TinyXML2:两个文件的极简 XML 解析器
xml·c++
干到60岁退休的码农2 天前
15.创建获取用户接口与JWT认证器
java·spring boot·mybatis
yuzhiboyouye3 天前
my-batisPlus什么时候用xml什么时候用mapper自带的方法,这两种写法专业一点叫什么,什么场景分别使用
xml
干到60岁退休的码农3 天前
16.过滤器中处理异常响应返回
java·spring boot·mybatis
geovindu3 天前
sql: Data Modeling Patterns
数据库·sql·设计模式·sqlserver
筝筝ba4 天前
如何跳过FFDC
xml·linux·运维·服务器·网络
敲代码的嘎仔4 天前
互动问答系统实战:两级评论模型、ES 搜索集成、Caffeine 多级缓存全记录
java·开发语言·数据库·elasticsearch·缓存·mybatis·高并发
yuzhiboyouye4 天前
那xml对应的sql语法,列举一下
xml·数据库·sql
无风听海5 天前
深入解析 Elasticsearch 的 match_phrase_prefix与 match_bool_prefix
大数据·elasticsearch·mybatis
摆烂z5 天前
定时任务同步数据--续跑&重试
java·mybatis·ai编程