这是因为“_”是SQL的通配符,表示一个任意的字符。所以 _10_、_1_ 与 模式 _1_是匹配的。
解决办法:就是用“[ ]”把不是通配符的 _、% 包起来,用如下这句试试:
select * from 表名 where 字段名 like '%[_]1[_]%'
_ 是通配符 代表1个任意字符
两个解决方法
楼上是一种:
select * from 表名 where 字段名 like '%[_]1[_]%'
这也可以:
select * from 表名 where 字段名 like '%\_1\_%' escape '\'
而斜杠 \ 之后的 _ 解释为字符 _ 不再是个通配符