ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

16、WHERE 条件

2022-07-04 20:04:34  阅读:184  来源: 互联网

标签:LIKE 16 18 age 条件 NULL WHERE teacher TRUE


符号 说明 举例
< 小于,< 左边的值如果小于右边的值,则结果为 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

单条件查询

以 teacher 表为例,查询年龄大于 18 的教师信息:

SELECT * FROM teacher WHERE age > 18;

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

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

AND 多条件查询

以 teacher 表为例,查询年龄大于 18 和 教师姓氏 王 的教师信息:

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

OR 多条件查询

以 teacher 表为例,查询年龄大于 25 或 教师姓氏 王 的教师信息:

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

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

BETWEEN AND 更新数据

以 teacher 表为例,将 age 在 20 和 30 之间的教师身份证设置为无:

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

IS NULL 查询

为了演示方便,我们先给 teacher 表增加一个字段 email:

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

清空表数据:

TRUNCATE TABLE teacher;

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

INSERT INTO teacher
(name,age,id_number,email)
VALUES
('姓名甲',19,'42011720200604077X',NULL),
('姓名乙',18,'42011720200604099X','123@qq.com'),
('姓名丙',20,'42011720200604020X',NULL),
('姓名丁',21,'42011720200604022X','345@qq.com'),
('姓名戊',22,'42011720200604033X',NULL);

然后查询 email 为 NULL 的教师信息结果集:

SELECT * FROM teacher WHERE email IS NULL;

参考资料:http://www.imooc.com/wiki/mysqllesson/mysqlwhere.html

标签:LIKE,16,18,age,条件,NULL,WHERE,teacher,TRUE
来源: https://www.cnblogs.com/tiansz/p/16444225.html

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

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

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

ICode9版权所有