命令行操作MySQL - in查询

这是命令行操作MySQL数据库系列博客的第十三篇,今天这篇博客记录in如何进行查询。(IN 与 NOT IN)



简介

IN查询就是查询集合内的所有数据,NOT IN就是查询非集合内的数据。
集合:括号内自己填写的数据。

IN查询

有的时候,当我们需要查询的目标记录限定在某个集合中的时候,在MySQL中可以使用关键字IN来实现,关键字IN可以实现判断字段的数值是否在指定集合中,该关键字的具体语句形式如下:
select * from 表名 where 字段名 IN(数据1, ..., 数据n);

意思是:查询表中所有与IN集合内相同的数据(即将满足查询条件的记录查询出来,否则不会被查询出来)。

例:

1. 首先创建一张表,并插入数据

在这里插入图片描述

2. 使用IN查询

(1).查询表name字段中符合name等于‘小蓝’的所有数据。

select * from in_table where name IN('小蓝');

在这里插入图片描述

(2).查询表name字段中符合name等于‘小明’与name等于‘小红’的所有数据。

select * from in_table where name IN('小明', '小红');

在这里插入图片描述

NOT IN查询

使用NOT IN可以反向查询非集合中的数据

具体语句形式如下:
select * from 表名 where 字段名 NOT IN(数据1, ..., 数据n);

例:

1. 使用NOT IN查询

(1). 查询除小蓝之外的所有数据

select * from in_table where name NOT IN('小蓝');

在这里插入图片描述

(2). 查询除小明和小红的所有数据

select * from in_table where name NOT IN('小明', '小红');

在这里插入图片描述

注意慎用IN 与 NOT IN查询NULL

集合查询的注意: 集合中慎用 NULL

在具体使用关键字IN时,查询的集合中如果存在NULL,则不会影响查询,NULL 存不存在的效果都一样;但如果使用关键字NOT IN,查询的集合中如果存在NULL,则不会查询到任何的结果。

简析:集合查询IN如果存在有NULL,则NULL数据不会查询出来,NOT IN查询如果存在有NULL,则查询不到任何结果。

例:

1. 往表中插入一条NULL数据

在这里插入图片描述

2. 使用IN查询NULL

select * from in_table where name IN('小红', NULL);

NULL数据不会被查询出来。
在这里插入图片描述

3. 使用NOT IN查询NULL

select * from in_table where name NOT IN('小红', NULL);

不会查询到任何数据。
在这里插入图片描述


总结:
IN查询其实很简单的,IN是查询集合中的数据,而NOT IN是查询非集合中的数据;注意不要使用IN与NOT IN进行NULL的查询即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cpp_learners

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值