ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

SQL必知必会(5)———用通配符进行过滤

2021-10-04 20:57:55  阅读:150  来源: 互联网

标签:5.1 LIKE 必知 通配符 SQL prod WHERE name


5.1 LIKE操作符

LIKE 操作符用于在 WHERE 子句中搜索列中的指定搜索模式,请看下面实例:

SELECT * FROM Persons
WHERE City LIKE 'N%'

'N%'就是指定的搜索模式,具体含义请看下面的内容。

5.1.1 百分号(%)通配符

在搜索串中,%表示任何字符出现任意次数。例如,为了找出所有以词Fish起头的产品,可写以下的SELECT语句:

SELECT prod_id,prod_name
FROM Products
WHERE prod_name LIKE 'Fish%';

输出如下:

prod_id			prod_name
---------------------------------
BNBG01			Fish bean bag toy

有的DBMS搜索时可能会区分大小写,如果区分大小写。那么'fish%'Fish bean bag toy就不匹配。

通配符可以在搜索模式的任意地方使用,并且可以使用多个通配符。
比如:

WHERE prod_name LIKE '%bean bag%';
WHERE prod_name LIKE 'F%y'

有的DBMS用空格填补字段的内容,例如,一列有50个字符,而存储的文本Fish bean bag toy(17个字符),则为填满该列需要在该文本后加33个空格。这样做对数据的一般使用没有影响,但是可能对上述SQL语句有影响。

比如 WHERE prod_name LIKE 'F%y',如果值后面跟了空格,Fish bean bag toy就检索不出来,解决办法是:使用'F%y%'。更好的解决办法是用函数去掉空格。函数的方法后续会讲到。

5.1.2 下划线(_)通配符

下划线通配符与百分号通配符用途一样,但它只匹配单个字符。

举一个例子:

SELECT prod_id,prod_name
FROM Products
WHERE prod_name LIKE '_ inch teddy bear';

输出如下:

prod_id			prod_name
----------------------------------
BR02			12 inch teddy bear
BR03			18 inch teddy bear

5.1.3 方括号([ ])通配符

方括号通配符用来指定一个字符集。它也只能匹配单个字符。

微软的SQL Server支持方括号通配符[],但MySQL,Oracle,DB2等不支持。

举一个例子:

SELECT C_name
FROM Table_C
WHERE C_name LIKE '[JM]%'
ORDER BY C_name;

输出如下:

C_name
------
Jack
John
Mike

[JM]匹配方括号中任意一个字符,它只能匹配单个字符。
然后,%通配符匹配第一个字符之后的任意数目的字符,返回所需结果。

此通配符可以用前缀字符^(脱字号)来否定,例如:

SELECT C_name
FROM Table_C
WHERE C_name LIKE '[^JM]%'
ORDER BY C_name;

它的功能就是匹配以J和M之外的任意字符起头的任意名字,当然,用NOT操作符也能得出类似的结果。

5.2 小结

这一课讲了LIKE 操作符,以及% _[]通配符,通配符应细心使用不要使用过度。

5.3 下节预告

下节课我们将一起学习如何创建计算字段。

标签:5.1,LIKE,必知,通配符,SQL,prod,WHERE,name
来源: https://blog.csdn.net/m0_61502213/article/details/120607229

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有