Mysql基础教程(05):IN

MySQL IN 运算符的用法

本文通过实例介绍了 MySQL 中如何使用 IN 运算符来判断一个值是否包含在一个值列表中。

在使用 SQL 查询的时候,我们可能需要判断一个字段的值是否位于一组值中,这就需要用到 IN 运算符了。

IN 运算符用来检查一个字段或值是否包含在一个集合中,如果值包含在集合中返回 1,否则返回 0

MySQL IN 语法

IN 是一个双目运算符,它需要 2 个操作数。以下是 IN 运算符的语法:

expression IN (value1, value2, ...)

用法说明:

  • expression 可以是一个字段名、值或其他的表达式(比如函数调用、运算等)。
  • (value1, value2, …) 是一个值列表,多个值之间使用 , 分隔,并使用小括号 () 将它们包围起来。
  • value1 是具体的值,比如:1, 2, ‘A’, ‘B’ 等。
  • (value1, value2, …) 最少可以是 1 个值,比如 (1), (‘A’)。

MySQL IN 运算规则

IN 运算符当左侧的操作数的值是右侧操作数集合列表中的其中一个时, IN 运算符返回 1。否则 返回 0。

IN 运算符其实是多个 OR 运算符组合的简化版本。比如下面的 IN 语句:

name IN ('Alice', 'Tim', 'Jack')

相当于下面的OR语句:

name = 'Alice' OR name = 'Tim' OR name = 'Jack'

IN 运算符的运算规则如下:

  • 左侧和右侧都不是 NULL 时,右侧值列表中包含左侧的值时返回 1,否则返回 0
SELECT 1 IN (1, 2), 3 IN (1, 2), 'A' IN ('A', 'B'), 'C' IN ('A', 'B');
+-------------+-------------+-------------------+-------------------+
| 1 IN (1, 2) | 3 IN (1, 2) | 'A' IN ('A', 'B') | 'C' IN ('A', 'B') |
+-------------+-------------+-------------------+-------------------+
|           1 |           0 |                 1 |                 0 |
+-------------+-------------+-------------------+-------------------+
  • 当左侧操作数为 NULL,返回 NULL。
SELECT NULL IN (1, 2), NULL IN (1, 2, NULL);
+----------------+----------------------+
| NULL IN (1, 2) | NULL IN (1, 2, NULL) |
+----------------+----------------------+
|           NULL |                 NULL |
+----------------+----------------------+
  • 当右侧值列表含有 NULL,如果包括左侧的非 NULL 值,返回 1,否则返回 NULL
SELECT 1 IN (1, NULL), 2 IN (1, NULL);
+----------------+----------------+
| 1 IN (1, NULL) | 2 IN (1, NULL) |
+----------------+----------------+
|              1 |           NULL |
+----------------+----------------+

MySQL IN 实例

sakila实例数据库为例

以下查询使用 WHERE 子句查找姓氏为 的所有演员。这个语句和我们的 MySQL OR 教程中的实例语句结果完全相同。

SELECT
    *
FROM
    actor
WHERE
    last_name IN ('刘', '周');
+----------+------------+-----------+---------------------+
| actor_id | first_name | last_name | last_update         |
+----------+------------+-----------+---------------------+
|        2 | 德华       || 2024-05-23 10:38:39 |
|        5 | 青云       || 2024-05-23 10:54:57 |
|       18 | 亦菲       || 2024-05-23 11:13:27 |
|        1 | 星驰       || 2024-05-23 10:38:29 |
|       16 | 润发       || 2024-05-23 10:58:35 |
+----------+------------+-----------+---------------------+
5 rows in set (0.01 sec)

结论

本文通过实例介绍了 MySQL 中 IN 运算符的语法和用法。 IN 运算符的用法要点如下:

  • IN 是一个双目运算符,需要 2 个操作数
  • IN 运算符左侧操作数是字段名或者值,右侧操作数是值列表或者子查询结果
  • IN 运算符左侧的操作数的值是右侧操作数集合列表中的其中一个时,返回 1。否则 返回 0。
  • IN 运算符可以看作是多个 OR 运算符组合的简化版本。
  • IN 运算符的否定操作是 NOT IN

⟸ Mysql基础教程(04):OR

Mysql基础教程(06):NOT IN ➜

  • 19
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
MySQL 是一种开源的关系型数据库管理系统,用于存储和管理大量数据。下面是一个简单的 MySQL 基础教程: 1. 安装 MySQL:首先,你需要下载和安装 MySQL。你可以从 MySQL 官方网站(https://www.mysql.com/)上下载适合你操作系统的安装程序,并按照安装向导进行安装。 2. 启动和连接 MySQL:安装完成后,你可以启动 MySQL 服务器。在命令行中输入 `mysql -u 用户名 -p`,然后输入密码以连接到 MySQL。 3. 创建数据库:使用 `CREATE DATABASE 数据库名;` 语句创建一个新的数据库。例如,`CREATE DATABASE mydatabase;` 将创建一个名为 "mydatabase" 的数据库。 4. 使用数据库:使用 `USE 数据库名;` 语句选择要使用的数据库。例如,`USE mydatabase;` 将选择名为 "mydatabase" 的数据库作为当前数据库。 5. 创建表:在选定的数据库中使用 `CREATE TABLE 表名 (列1 数据类型, 列2 数据类型, ...);` 语句创建一个新的表。例如,`CREATE TABLE customers (id INT, name VARCHAR(50), email VARCHAR(50));` 将创建一个名为 "customers" 的表,包含 id、name 和 email 列。 6. 插入数据:使用 `INSERT INTO 表名 (列1, 列2, ...) VALUES (值1, 值2, ...);` 语句向表中插入数据。例如,`INSERT INTO customers (id, name, email) VALUES (1, 'John Doe', 'john@example.com');` 将向 "customers" 表中插入一条数据。 7. 查询数据:使用 `SELECT 列1, 列2, ... FROM 表名;` 语句从表中查询数据。例如,`SELECT id, name, email FROM customers;` 将返回 "customers" 表中的所有数据。 8. 更新数据:使用 `UPDATE 表名 SET 列 = 值 WHERE 条件;` 语句更新表中的数据。例如,`UPDATE customers SET email = 'newemail@example.com' WHERE id = 1;` 将更新 "customers" 表中 id 为 1 的数据的 email 列。 9. 删除数据:使用 `DELETE FROM 表名 WHERE 条件;` 语句删除表中的数据。例如,`DELETE FROM customers WHERE id = 1;` 将删除 "customers" 表中 id 为 1 的数据。 这只是 MySQL基础教程,还有很多其他功能和语法可以学习。你可以参考官方文档或其他教程来深入学***

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

叁拾舞

你的鼓励将是我最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值