加入收藏 | 设为首页 | 会员中心 | 我要投稿 汽车网 (https://www.0577qiche.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

WHERE 条件查询

发布时间:2023-02-28 13:14:58 所属栏目:MySql教程 来源:
导读:WHERE 条件
前面介绍了如何对表数查询、更新、删除,本小节介绍如何在查询、更新、删除操作加上 WHERE 条件约束,使这些语句的操作更加准确,满足业务需求。WHERE 条件的操作符类型有如下:

符号 说明 举例
WHERE 条件
前面介绍了如何对表数查询、更新、删除,本小节介绍如何在查询、更新、删除操作加上 WHERE 条件约束,使这些语句的操作更加准确,满足业务需求。WHERE 条件的操作符类型有如下:

符号    说明    举例
<    小于,< 左边的值如果小于右边的值,则结果为 TRUE,否则为 FALSE    如 : 满足年龄小于 18 的条件 age < 18
=    等于,= 左边的值如果等于右边的值,则结果为 TRUE,否则为 FALSE    如 : 姓名为 小明 的条件 name = '小明'
>    大于,> 左边的值如果大于右边的值,则结果为 TRUE,否则为 FALSE    如 : 时间戳大于 2020-03-30 00:00:00的条件 time > 1585497600
<>    不等于,<>还可写成 != ,左边的值如果不等于右边的值,则结果为 TRUE,否则为 FALSE    如 : 年份不等于2012的条件 year != 或 year <> 2012
<=    小于等于,<= 左边的值如果大于右边的值,则结果为 FALSE,否则为 TRUE    如 : 满足年龄小于等于 18 的条件 age <= 18
>=    大于等于,>= 左边的值如果小于右边的值,则结果为 FALSE,否则为 TRUE    如 : 满足年龄大于等于 18 的条件 age >= 18
LIKE    模糊条件,LIKE 右边的值如果包含左边的值,则结果返回TRUE,否则为 FALSE    如 : 满足身份证号为 420 开头的条件 id_number LIKE '420%',其中 % 表示任意值
NOT LIKE    不满足模糊条件,LIKE 右边的值如果不包含左边的值,则结果返回TRUE,否则为 FALSE    如 : 满足身份证号不是 X 结尾的条件 id_number NOT LIKE '%X',其中 % 表示任意值
BETWEEN AND    在两个值之间(包含两端值)    如 : 年龄满足 大于等于20 和 小于等于30 的条件 age BETWEEN 20 AND 30
NOT BETWEEN AND    不在在两个值之间(不包含两端值)    如 : 年龄满足 小于20 和 大于30 的条件 age NOT BETWEEN 20 AND 30
IS NULL    空,IS NULL 左边的值如果为空,则返回TRUE,否则为FALSE    如 : 年龄满足 邮箱为空 的条件 email IS NULL
IS NOT NULL    不是空,IS NOT NULL 左边的值如果不为空,则返回TRUE,否则为FALSE    如 : 年龄满足 邮箱不为空 的条件 email IS NOT NULL
1.单条件查询
以 teacher 表为例,查询年龄大于 18 的教师信息:

SELECT * FROM teacher WHERE age > ;

再比如使用 LIKE 模糊查询身份证号以 020X 结尾的教师信息:

SELECT * FROM teacher WHERE id_number LIKE '%020X';

2.AND 多条件查询
以 teacher 表为例,查询年龄大于 18 和 教师姓氏 王 的教师信息:

SELECT * FROM teacher WHERE age >  AND name LIKE  '王%';

Tips:这里还想加更多的条件可以在后面继续跟 AND,LIKE 后面表达式中 % 表示指代任意内容。

3.OR 多条件查询
以 teacher 表为例,查询年龄大于 25 或 教师姓氏 王 的教师信息:

SELECT * FROM teacher WHERE age >  OR name LIKE  '王%';

Tips:这里还想加更多的条件可以在后面继续跟 OR,若 AND 和 OR 混合使用则需要把同一组表达式用 () 包起来,如 : (age > 25 AND name LIKE '王%') OR (age < 20 AND name LIKE '刘%')。

4.BETWEEN AND 更新数据
以 teacher 表为例,将 age 在 20 和 30 之间的教师身份证设置为无:

UPDATE teacher SET id_number = '无' WHERE age BETWEEN  AND ;

Tips:注意 BETWEEN AND 包含两端的值。

5.IS NULL 查询
为了演示方便,我们先给 teacher 表增加一个字段 email:

ALTER TABLE `item_name`.`teacher` ADD COLUMN `email` varchar() NULL AFTER `id_number`;

清空表数据:

TruncATE TABLE teacher;
然后往 teacher 表插入几条测试数据:

INSERT INTO teacher(name,age,id_number,email)VALUES('姓名甲',,'42011720200604077X',NULL),('姓名乙',,'42011720200604099X','123@qq.com'),('姓名丙',,'42011720200604020X',NULL),('姓名丁',,'42011720200604022X','345@qq.com'),('姓名戊',,'42011720200604033X',NULL)
然后查询 email 为 NULL 的教师信息结果集:

SELECT * FROM teacher WHERE email IS NULL;
 

(编辑:汽车网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章