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

你可能感兴趣的:(sqlserver like 中文不匹配)