数据库前匹配快in。
like最差,特别是以%(有的数据库是*)开头的匹配,是无法进行索引的,只有顺序扫描。
首先是=,表示值必须是一个特定的值。然后是in,表示值是几个特定的值中的一个。最后是like,通过匹配来查找值。其实还有一个is,只为null使用。
SQL对like *** 作中的特殊字符处理方法:
SQL Server查询过程中,单引号 ' 是特殊字符,所以在查询的时候要转换成双单引号 '' 。
在like *** 作还有以下特殊字符:下划线_,百分号%,方括号[],尖号^。 其用途如下:下划线:用于代替一个任意字符(相当于正则表达式中的 ? ) 百分号:用于代替任意数目的任意字符(相当于正则表达式中的 * )。
方括号:用于转义(事实上只有左方括号用于转义,右方括号使用最近优先原则匹配最近的左方括号)。
尖号:用于排除一些字符进行匹配(这个与正则表达式中的一样)。
通俗说like 是查询具有同一类特征的元素,%是通配符号举个简单例子 在表table中,有个name字段, 有3个数据 : tom tom_a jack
如果你写 select name from table like 'tom%'
结果tom tom_a 都列出来了
也就是说%是代替未知的符号,只要符合前面的要求就行。
楼主这么聪明应该理解了吧,哈哈~
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)