1 Star 0 Fork 1

杨超 / mysql学习

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
6使用逻辑运算符过滤数据.md 2.99 KB
一键复制 编辑 原始数据 按行查看 历史
杨超 提交于 2021-06-30 01:52 . z-trun

使用逻辑运算符过滤数据

1. 使用 AND

在查询表的时候,如果想满足两个给定的条件,可以在WHRER子句中使用AND运算符来实现,AND表示”与“关系。在进行查询的时候,既要满足给定的第一个条件,也要同时满足给定的第二个条件,如果不满足两个查询条件中的一个,这样的记录就会被排除掉,AND运算符的真值表如下所示:

条件1 条件2 结果
true true true
true false false
false false false
true null null
false null false
null null null
SELECT
	id,
	`name`,
	current_price
FROM
	goods
WHERE
	current_price > 2000
AND current_price < 3000;

在定义查询的时候,在WHERE语句中可以设置多个筛选条件,可以同时对多个AND来连接多个表达式,只有同时满足所有的查询条件的记录才会被查询出来

SELECT
	id,
	`name`,
	current_price,
	subcat_id
FROM
	goods
WHERE
	views_count > 1
AND current_price > 2000
AND subcat_id = 37;

2. 使用OR运算符

在查询表的时候,如果想要满足两个给定的条件中的一个的时候,可以在WHERE语句中使用OR运算符来实现。OR代表”或“的关系,即满足第一个或者第二个的给定条件,如果不满足其中一个,这样的记录就会被排除掉,真值表如下所示:

条件1 条件2 结果
true true true
true false true
false false false
true null true
null false false
null null null
SELECT
	id,
	`name`,
	current_price,
	subcat_id
FROM
	goods
WHERE
	subcat_id = 35
OR subcat_id = 33;

在定义查询的时候,可以使用多个OR表达式,只要满足一个查询条件就能被查询出来

SELECT
	id,
	`name`,
	current_price,
	introduction
FROM
	goods
WHERE
	`name` LIKE '%Sumsung%'
OR introduction LIKE '%证书编号%'
OR current_price < 3000;

3. 使用NOT运算符

使用NOT运算符来查询,表示"非”的关系,即不满足所给条件

SELECT
	id,
	`name`,
	is_sale
FROM
	goods
WHERE
	NOT is_sale = 1;

4. 逻辑运算符的优先级

在查询的时候可以将AND,OR,NOT运算符综合起来使用,但是三者拥有不同的优先顺序,优先级别 NOT > AND > OR

SELECT
	id,
	`name`,
	current_price,
	subcat_id
FROM
	goods
WHERE
	subcat_id = 37
OR subcat_id = 33
AND current_price > 2000;

优化后

SELECT
	id,
	`name`,
	current_price,
	subcat_id
FROM
	goods
WHERE
	(subcat_id = 37
OR subcat_id = 33)
AND current_price > 2000;
SELECT id,`name`,introduction,subcat_id FROM goods
WHERE (`name` LIKE '%西门子%' OR `introduction` LIKE '%证书编号%' ) AND (NOT subcat_id =29);
SELECT id,`name`,introduction,subcat_id FROM goods
WHERE (NOT subcat_id =33 ) AND ( NOT id =2);
1
https://gitee.com/yashirochaos/mysql-learning.git
git@gitee.com:yashirochaos/mysql-learning.git
yashirochaos
mysql-learning
mysql学习
master

搜索帮助