sqlserver like 中文不匹配

select * from table where name like ‘%中%’;这样的sql在sqlserver中进行查询会出现没有结果的情况

解决方法有两种

1:加N,代表String字符串是一个Unicode字符串,如果没有字母 N 前缀,则 SQL Server 会将字符串转换为与数据库的默认排序规则相对应的代码页。此代码页中没有的字符都将丢失。

select * from table where name like N'%中%';

但是like concat(concat('%',#{name}),'%')这种情况的时候我还没有找到转为unicode的方法。如果有可行方法,请告知一下,谢谢。

2:修改数据库的编码方式为Chinese_PRC_CI_AS

修改为单用户模式

ALTER DATABASE database SET SINGLE_USER WITH ROLLBACK IMMEDIATE


修改编码格式
ALTER DATABASE database COLLATE Chinese_PRC_CI_AS

修改为多用户模式
ALTER DATABASE database SET MULTI_USER WITH ROLLBACK IMMEDIATE
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值