MSSQL中LIKE的1,11,111问题[原创]
来源:互联网 发布:装备制造业数据 编辑:程序博客网 时间:2024/05/16 08:19
相信大家都用过LIKE语句,那么大家都是怎么用的呢?
看下我下面的例子:
select * from tablename where colname like '%1%'
这样的语句是不是常用呢?
大家先看看这里会出现什么问题呢?
往下看:
这里就存在我说的1,11,111的问题,其实,1,11,111只是个代表名,也可以叫2,22,222问题,问题的原理是这样的:
比如上面的语句中,如果colname的值为“1,2,3”,那么应该会返回你期望的结果。
那么,如果colname的值为“2,11,111”时,你想想上面的语句会得到什么呢?
是不是也会匹配出来,这个就是我要说的1,11,111问题。
既然问题来了,那怎么解决呢?
可以用分割符来解决的,这个要求,在形成2,11,111这个串的时候就要加处理,应该是下面这样:“|2|,|11|,|111|”,不要问我这个怎么加哈,当然了,这个“|”是可以随意更换的,看要保持一个原则,就是这个分割符不常用,否则就没有意义了。
那么这样的话呢,数据库里就存了这些信息了,那检索查询时怎么写呢?
可以这样来写:
select * from tablename where colname like '%|1|%'
如果是其他情况,请变换成上面的样子就可以了。
这样就完全解决1,11,111的问题了。
顺便说一下,LIKE时,一定记住,是多LIKE少。
感谢大家看完,有不当之处,请跟贴指出,谢谢。
- MSSQL中LIKE的1,11,111问题[原创]
- MSSQL like 查询区分大小写的问题
- ibatis中like的问题
- MSSQL中UNIX时间的转换问题
- php + mssql 中 like 不支持中文关键字查询
- mssql相关的问题
- SQL中使用LIKE查询注意的问题
- 在查询中遇到的特殊符合问题like “%[]%”
- Sql2005中Datetime类型用Like查找的问题
- SqlServer中Datetime类型用Like查找的问题
- 解决like中无法匹配下划线的问题
- Sql2005中datetime类型用like查找的问题
- sqlserver中DataTime类型列使用Like时的问题
- Oracle 存储过程中like语句的参数问题
- SQL搜索下划线,like中不能匹配下划线的问题
- 解决like中无法匹配下划线的问题
- SQL搜索下划线,like中不能匹配下划线的问题
- sql 中使用like时,关于转义符的问题
- Hibernate Spring 回调 jdbc 执行查询
- 软件设计原则
- toeic的学习网站
- 八卦:IT界十二豪门的十二星座传奇 (NEWS)
- Jaxcent试用手记
- MSSQL中LIKE的1,11,111问题[原创]
- 服务器端通过arp协议获取客户端mac地址
- 数据库调优
- GPS 格式解析
- 很棒的英语学习网站集合
- ASP.NET中常用的26个优化性能方法
- Javascript 常用网页技巧(5)
- Designing Applications for Windows Media Center
- Javascript 的常用语句