我原以为是两个_ _ 代表一个汉字
结果一试 like '张_ _ '
张a
张飞
都可以!
------解决方案--------------------
如果你的字段是nchar 不是char那么的确是这样,
因为nchar 不管是什么字母都占两位
或者你的字段是char 不是 varchar 那么也是这样
因为 张a 后面还有 空格,所以也能匹配
------解决方案--------------------
“_”表示任何单个字符。一个汉字、一个字母、一个数字、一个符号、一个其它字符集的字符,都是一个字符。
like '张_ _ '
应该“张a”和“张飞”都查找不出来吧
declare @temp table (test varchar(10))
insert @temp select '张飞 ' union all select '张a ' union all select '张弓长 '
select * from @temp where test like '张_ '
select * from @temp where test like '张__ '
------解决方案--------------------
declare @temp table (test varchar(10))
insert @temp select '张飞 ' union all select '张a ' union all select '张弓长 '
select * from @temp where test like '张_ '
select * from @temp where test like '张__ '
/*结果
test
----------
张飞
张a
test
----------
张弓长
*/
declare @temp table (test char(10))
insert @temp select '张飞 ' union all select '张a ' union all select '张弓长 '
select * from @temp where test like '张_ '
select * from @temp where test like '张__ '
/*结果
test
----------
张飞
张a
test
----------
张飞
张a
张弓长
*/