4.过滤
工作用的数据库表中一般包含大量数据,很少会一次全部查询,所以会使用where子句加过滤条件来查询我们需要的数据。
前面提到的匹配方式都是针对已知值,但是实际情况中并不总是这样,有时候我们需要匹配一些字面值,但是我们可能并不清楚她们的全貌,这里就需要用到搜索模式,先认识下简单的通配符:%(任何字符出现任意次数),_(匹配单个字符),这里我们会用到like和regexp两种操作符,一起来看下。
select name from eg where name like 'a%'; # 查询姓名以a开头的员工![](https://img2020.cnblogs.com/other/1774629/202004/1774629-20200421171013371-640179622.png)
select name from eg where name like '_a%'; # 查询姓名第二个字母为a的员工
![](https://img2020.cnblogs.com/other/1774629/202004/1774629-20200421171013576-1635929560.png)
select name from eg where name like 'an';
select name from eg where name regexp 'an';
![](https://img2020.cnblogs.com/other/1774629/202004/1774629-20200421171013840-1064564701.png)
关于regexp的用法这里会涉及到正则表达式,因为正则的内容还比较多,这篇文章里我们只先做一个简单了解,后面会在另一个专题来说明,这里我们注意一下regexp和like的一些使用区别就好,通过上面的例子我们可以看到like匹配的是整个列值,所以当'an'只在列值中出现时,like是不会返回对应值的,而regexp操作时只要被匹配的文本在列值里出现了,那么相应值就会被返回。