标准SQL中用like进行模糊查询,有两个通配符:%百分号代表任意个字符,_下划线代表一个字符。
1、like'Mc%' 将搜索以字母 Mc 开头的所有字符串。
2、like'%inger' 将搜索以字母 inger 结尾的所有字符串。
3、like'%en%' 将搜索在任何位置包含字母 en 的所有字符串。
SQL LIKE *** 作符语法
‘_':下划线,表示1个任意字符;如 ... where name like '_am',表示仅第一位任意,并以'am'结尾,结果如"Tam","Mam","Pam"等。
'%’: 百分号,表示任意个任意字符;如 ... where name like ‘%am',表示前面可以有任意位,只要以'am'结尾,结果如"abcam",“bcdefgham","qwertyuiopam","am"等等。
以上内容参考:百度百科-SQL LIKE
数据库前匹配快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条)