SQL系列(七)—— 相似(like)

在看like之前先了解下通配符和搜索模式:

通 配 符 ( wildcard) 用来匹配值的一部分的特殊字符。

搜索模式(search pattern) 由字面值、通配符或两者组合构成的搜索条件。

目前SQL中支持多种通配符:

  • 百分号%通配符:匹配任意字符任意次数。但是不支持匹配NULL值
  • 下划线_通配符:匹配任意字符一次。

注:百分号%,绝大多数DBMS都支持;下划线_,少量的DBMS不支持。

一般说道通配符,搜索模式,都会和转义符息息相关,在SQL中和大多数场景中的转义符一样,使用反斜杆:

select * from student where name like 'xiao\%h%';

结果:

name
'xiao%huang'

上述SQL中第一个%被转义,在搜索条件中就是用来匹配%;第二个%表示通配符,匹配任意字符任意次。

1.like关键字

上述了解到SQL中使用利用通配符组合搜索模式进行模糊匹配,在SQL中如何应用搜索模式是通过like关键字,语法:

select column1, column2...columnN where columnJ like pattern;

由以上语法可以看出,like是where的子句,且后接搜索模式。

select * from student where name like 'x%n'

如上述检索表示:查询name中的以x开头,n结尾的student,结果:

name
xiaolan

从以上可以看出,在SQL中的搜索模式的功能非常强大。但是事物的两面性决定,搜索模式有其缺点:

  • like的模糊匹配相对于严格的值匹配的能够精准搜索,性能略低;
  • like的应用场景有时会使得索引失效
参考

《SQL必知必会》

猜你喜欢

转载自www.cnblogs.com/lxyit/p/9316556.html