SQL的like操作符

在where子句中,like操作符我们经常会用到,比如,当我们只知道一个人的名字,却不知道他的姓,去查询的他的相关信息时,就需要用到like操作符。

在like操作符,常用到的通配符是"%",在搜索串中,%表示任何字符出现的任意次数

以部门表为例

查询部门名称中以"es"结尾的部门编号,和部门名称。那么sql就是:

select * from departments where dept_name like '%es';

那么查询结果为:

如果查询部门名称中含有"es"字符的部门编号,和部门名称。那么sql就是

select * from departments where dept_name like '%es%';

查询结果为

以上两个例子区别在于,一个是以"es"结尾,那么,因为"%"匹配任意数量字符,所以在"es"前面添加上"%"即可。另一个是包含"es"就要考虑到"es"出现的位置可能在最前面,中间,和末尾,三种情况,所以在"es"前面和后面都需要添加上"%"。

另一个通配符就是下划线"_",下划线"_"的用途和"%"一样,但是下划线"_"只能匹配单个字符而不是多个字符

比如查询以"es"结尾的五个字母组成的部门名称的部门信息

那么sql就需要写成:

select * from departments where dept_name like '___es';

需要写三个下划线"_",查询结果为:

通配符的使用还是很方便的,但是这种方便性是以牺牲性能为代价的,使用通配符查询时要比准确查询花费的时间更长,所以不要过度使用通配符。

生于忧患,死于安乐
原文地址:https://www.cnblogs.com/songlove/p/15494701.html