😄 每天5min小学一下,拒绝内卷,休息~
本文学习如何做高级数据过滤【5 mins 快速入门】 -> 组合where语句 (搭配AND语句、or语句使用)、IN和NOT操作符。
🚀导航:
ID | 算法 |
---|---|
NO.1 | 1、组合WHERE子句 |
NO.2 | 2、IN操作符 |
NO.3 | 3、NOT操作符 |
1、组合WHERE子句:
1.1、AND操作符:
SELECT c1, c2, c3
FROM tb1
WHERE c1='id1' AND c2<=666 AND c3>666; # 可以读个AND连接多个条件
1.2、OR操作符:
SELECT c1, c2, c3
FROM tb1
WHERE c1='id1' OR c2='id2'; # 第一个条件满足,不管后面条件了
1.3、求值顺序:
- SQL和多数语言一样,在处理OR操作符前,优先处理AND操作符。
- 必要时借助圆括号,圆括号优先级更高。
SELECT c1, c2, c3
FROM tb1
WHERE (c1='id1' OR c2='id2') AND c3>=666; # 必要时,要用括号括住。圆括号优先级更高。
2、IN操作符:
- 用来判断是否在指定范围内。IN操作符后跟由逗号分隔的合法值,这些值必须在圆括号中。和OR操作符功能类似。
- IN的最大优点是可以包含其他SELECT语句,能更动态地建立WHERE子句。
- IN操作符一般比OR操作符执行得更快。
SELECT c1, c2, c3
FROM tb1
WHERE c1 IN ('id1, id2') # 等价于 WHERE c1='id1' or c2='id2';
ORDER BY c2;
3、NOT操作符:
- WHERE子句中用来否定其后条件的关键字。
- 像下面这种简单的WHERE子句使用NOT没啥优势,但在更为复杂的子句总,NOT的优势才能显示出来。
SELECT c1, c2, c3
FROM tb1
WHERE NOT c1='id1' # 等价于WHERE c1!='id1'
ORDER BY c2;