😄 每天5min小学一下,拒绝内卷,休息~
⭐ 简单声明:
- 🌈通配符极其重要,但不要过度使用,因为通配符的搜索一般比前面讨论的其他搜索要耗费时间。逼不得已才使用。
- 之前的大于小于等操作符进行过滤时,使用的都是已知值来过滤。
- 通配符实际上是SQL的WHERE子句中有特殊含义的字符。
- 通配符是用来匹配值的一部分的特殊字符。
- 利用通配符可以创建特定数据的搜索模式(e.g. 检索出所有产品名中包含milk的产品)。
- 通配符只能用于文本字段(字符串)。
- 在搜索子句中使用通配符,必须用LIKE操作符。
- 通配符可以在搜索模式的任意位置使用。
本文学习如何用通配符进行过滤【5 mins 快速入门】 -> 通配符介绍、LIKE操作符进行通配搜索 (以便对数据进行复杂过滤)
🚀导航:
ID | 算法 |
---|---|
NO.1 | 1、LIKE操作符 ( %、_ 、[ ] ) |
1、LIKE操作符:
1.1、百分号% 通配符:
%可以匹配任意个字符。【注:%不会匹配值为NULL的行。】
SELECT c1, name
FROM tb1
WHERE name LIKE 'milk%'; # 检索出以milk起头的所有数据
# 【注:不同DBMS可能所搜可以是区分大小写的】
# 通配符可以在搜索模式的任意位置使用。
# WHERE name LIKE '%milk apple%'
# WHERE name LIKE 'b%qq.com'
1.2、下划线 _ 通配符:
_ 只匹配单个字符。
SELECT c1, name
FROM tb1
WHERE name LIKE '_ milks';
1.3、方括号 [ ] 通配符:
[ ] 用来指定一个匹配字符集【注:MySQL、SQLite等不支持】
SELECT c1, name
FROM tb1
WHERE name LIKE '[AB]%'; # 检索出以A或B开头的name。
# WHERE name LIKE '[^AB]%'; # 检索出以A或B开头的name。
# 等价于 WHERE NOT name LIKE '[AB]%'; # 检索出以A或B开头的name。