
请问sql语句中like子句的问题
access数据库,有一个table的一个字段是文本类型,内容如下:_1__1_5_8__6_7__10_也就是由下划线分割的一些整数,整数个数不固定。我的问题是,如果查...
access数据库,有一个table的一个字段是文本类型,内容如下:
_1_
_1_5_8_
_6_7_
_10_
也就是由下划线分割的一些整数,整数个数不固定。
我的问题是,如果查询语句是:
select * from 表名 where 字段名 like '%_1_%'
那么内容为 _10_ 的记录也会被选中。
请问这是为什么?怎么解决呢?
多谢! 展开
_1_
_1_5_8_
_6_7_
_10_
也就是由下划线分割的一些整数,整数个数不固定。
我的问题是,如果查询语句是:
select * from 表名 where 字段名 like '%_1_%'
那么内容为 _10_ 的记录也会被选中。
请问这是为什么?怎么解决呢?
多谢! 展开
3个回答
展开全部
这是因为“_”是SQL的通配符,表示一个任意的字符。所以 _10_、_1_ 与 模式 _1_是匹配的。
解决办法:就是用“[ ]”把不是通配符的 _、% 包起来,用如下这句试试:
select * from 表名 where 字段名 like '%[_]1[_]%'
解决办法:就是用“[ ]”把不是通配符的 _、% 包起来,用如下这句试试:
select * from 表名 where 字段名 like '%[_]1[_]%'
展开全部
_ 是通配符 代表1个任意字符
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
两个解决方法
楼上是一种:
select * from 表名 where 字段名 like '%[_]1[_]%'
这也可以:
select * from 表名 where 字段名 like '%\_1\_%' escape '\'
而斜杠 \ 之后的 _ 解释为字符 _ 不再是个通配符
楼上是一种:
select * from 表名 where 字段名 like '%[_]1[_]%'
这也可以:
select * from 表名 where 字段名 like '%\_1\_%' escape '\'
而斜杠 \ 之后的 _ 解释为字符 _ 不再是个通配符
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询