MySQL基础知识——IN

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: MySQL基础知识


IN的作用

IN可以在WHERE自己中指定多个值,是多个OR条件的简写形式。


IN的语法

SELECT column_name(s) FROM table_name WHERE column_name [NOT] IN (value1, value2, ...);

或者

SELECT column_name(s) FROM table_name WHERE column_name [NOT] IN (SELECT STATEMENT);


第一种语法是直接在IN的括号里,手动输入多个你需要筛选的值;第二种语法则是将括号里的子查询的结果,作为你筛选数据的值。


示例数据

我们以表customers为演示数据,内容如下:

90.jpg

                                                    表customers

IN的实例

希望从表customers中查询出城市为"北京","上海","广州"的客户信息,可以这样写:


SELECT * FROM customers
WHERE `城市` IN ('北京','上海','广州')


结果为:

91.jpg其实我们也可以使用OR来完成,下面的语句与上面的语句功能相同:


SELECT * FROM customers
WHERE `城市` ='北京'
OR `城市`='上海'
OR `城市`='广州'


但是用OR代码就看着会比较冗长,所以如果遇到相同字段要取多个值的,建议使用IN来书写。


NOT IN的实例

有相等,那对应的就会有不相等,IN也如此,它结合NOT就可以表示不存在的功能。希望从表customers中查询出城市为"北京","上海","广州"的客户信息,可以这样写:


SELECT * FROM customers
WHERE `城市` NOT IN ('北京','上海','广州')


结果为:


92.jpg

大家注意城市这一列,我们查询出来的结果中不包含"北京","上海","广州",正是我们需要查找的数据,这就是NOT IN的功能。


IN子查询实例

有如下一张供应商Suppliers表,示例如下:

93.jpg

希望能够找到customers表中与供应商处在同一个城市的客户,我们可以这样写:


SELECT * FROM Customers
WHERE 城市 IN (SELECT 城市 FROM Suppliers);


结果为:

94.jpg

IN后面接的就是一个子查询,后面我们会详细介绍。这里的子查询的作用就是查询出供应商这张表里的城市信息,我们可以看到有"上海","南京","西安"这三个城市信息。这时候IN就通过这三个城市的信息,去过滤表customers中的客户信息。只要customers表里的客户城市在这三个城市中,就是我们需要的数据了。


这里你可以理解为IN就是取两个表都有的数据才会被查询出来

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
7月前
|
关系型数据库 MySQL 数据库
掌握MySQL数据库基础知识 同步练习与实训
掌握MySQL数据库基础知识 同步练习与实训。
86 0
|
8月前
|
存储 关系型数据库 MySQL
掌握MySQL数据库基础知识的同步练习与实训
进行掌握MySQL数据库基础知识的同步练习与实训。
106 0
|
5月前
|
关系型数据库 MySQL PHP
MySQL基础知识之【元数据】
MySQL基础知识之【元数据】
45 1
|
5月前
|
SQL 前端开发 关系型数据库
MYSQL基础知识之【复制表】
MYSQL基础知识之【复制表】
48 1
|
5月前
|
前端开发 关系型数据库 MySQL
MYSQL基础知识之【临时表】
MYSQL基础知识之【临时表】
42 0
|
5月前
|
SQL 前端开发 关系型数据库
MYSQL基础知识之【索引】
MYSQL基础知识之【索引】
29 0
|
5月前
|
SQL 前端开发 关系型数据库
MYSQL基础知识之【ALERT】
MYSQL基础知识之【ALERT】
67 0
|
5月前
|
SQL 前端开发 关系型数据库
MYSQL基础知识之【LIKE子句的使用 ,NULL值的处理,空值的处理】
MYSQL基础知识之【LIKE子句的使用 ,NULL值的处理,空值的处理】
65 0
|
5月前
|
SQL 前端开发 关系型数据库
MYSQL基础知识之【修改数据,删除数据】
MYSQL基础知识之【修改数据,删除数据】
46 1
|
5月前
|
SQL 关系型数据库 MySQL
MYSQL基础知识之【添加数据,查询数据】
MYSQL基础知识之【添加数据,查询数据】
29 0

推荐镜像

更多