微学网

热门关键词:   as  thinkphp  ecshop  xxx  php分页  商务通
热门: ASP.NET PHP编程 ASP编程 JSP编程 Python

用通配符进行过滤

发布时间:2020-03-18 来源:未知 点击:

-- 通配符进行过滤
#使用条件是只能用于文本字段(字符串),非文本数据类型字段不能使用通配符搜索

-- LIKE操作符
/*
当过滤中使用的值都是已知的时候可以不用通配符,但是当数据量很大
需要进行搜索特定条件的值,简单的比较操作符肯定不行,这时候利用
通配符,可以创建比较特定数据的搜索模式。
什么是通配符? 用来匹配值的一部分的特殊字符
什么是搜索模式?由字面值、通配符或两者组合构成的搜索条件
一个显著的标志就是:通配符本身是SQL的WHERE子句中有特殊含义的字符
搜索子句中使用通配符必须使用LIKE操作符,LIKE指示DBMS,后跟的搜索模式利用通配符匹配而不是简单的相等匹配进行比较
*/

-- 百分号(%)通配符(%表示任意字符出现任意次数)
SELECT prod_id,prod_name
FROM Products
WHERE prod_name LIKE 'Fish%';

#表示以Fish开头,Fish之后任意字符,不管有多少

-- DBMS的不同,搜索是可以区分大小写的,匹配出的结果也就不一样
-- 通配符可在搜索模式中的任意位置使用,并且可以使用多个通配符

SELECT prod_id,prod_name
FROM Products
WHERE prod_name LIKE '%bean bag%';/* '%bean bag%'表示匹配任何位置包含bean bag的值,不论它前后出现什么字符*/

-- 匹配找出F开头,y结尾的所有产品
SELECT prod_name
FROM Products
WHERE prod_name LIKE 'F%y';

-- 需要特别注意的是%也可以匹配0个字符,即在搜索模式中可以匹配0个、1个或多个字符
/* 当DBMS用空格来填补字段的内容的时候,
y后面有很多空格,
这个时候'F%y'就无法检索出来,
需要使用'F%y%'。更好的解决办法是用函数去掉空格。
此外,通配符%不会匹配NULL
*/

-- 下划线_通配符(用途与%一样,但是只能匹配单个字符,而不是多个字符)
SELECT prod_id,prod_name
FROM Products
WHERE prod_name LIKE '__ inch teddy bear';#注意这里是两个下划线

-- 与%对比发现,_只能匹配一个字符,不能多也不能少
SELECT prod_id,prod_name
FROM Products
WHERE prod_name LIKE '% inch teddy bear';

/*
[]通配符只有Access和SQL Server支持集合,它用来指定一个字符集,必须匹配指定位置的一个字符
SELECT cust_contact
FROM Customers
WHERE cust_contact LIKE'[JM]%'
ORDER BY cust_contact;
其中[JM]匹配方括号中的任意一个字符,只能匹配打个字符,即以J或者M开头的姓氏
也可以加入前缀字符^来进行否定,匹配得到J和M之外的任意字符起头的人名[^JM]
此外NOT操作符在这里与^功能相同
SELECT cust_contact
FROM Customers
WHERE NOT cust_contact LIKE '[JM]%'
ORDER BY cust_contact;
^的唯一优点就是在使用多个WHERE子句时可以简化语法
*/

/*
使用通配符的技巧:
1.不要过度使用,因为通配符搜索比其他搜索要耗费更长的处理时间。
2.确实需要使用通配符时,不要置于搜索模式的开始处,这样搜索起来是最慢的。
3.注意位置,放错的话不会得到想要的结果。
*/


这就是微学网-程序员之家为你提供的"用通配符进行过滤"希望对你有所帮助.本文来自网络,转载请注明出处:http://www.weixuecn.cn/article/10623.html

上一篇:使用函数处理数据

下一篇:没有了

网络编程 | 前端制作 | 数据库 | CMS教程 | 脚本编程 | 框架 | 微信公众号 | 小程序 | 服务器 | APP开发 |

凡本网站转载的文章、图片等资料的版权归版权所有人所有,因无法和版权所有者一一联系,如果本网站选取的文/图威胁到您的权益,请您及时和本网站联系。 我们会在第一时间内采取措施,避免给双方造 成不必要的损失。
© 2015-2018 微学网 版权所有,并保留所有权利。 备案号:粤ICP备09051474号-1

电脑版 | 移动版