MariaDB IN 操作符的基础用法与实例
MariaDB IN
操作符用于判断一个值是否在一个集合中。
发布于
MariaDB 是一个开源的关系型数据库管理系统,它是 MySQL 的一个分支。MariaDB 提供了许多内置的操作符,用于对数据进行各种操作和转换。本文将介绍一个常用的操作符:IN
操作符,它可以判断一个值是否在一个集合中。
语法
IN
操作符的语法如下:
value IN (value1, value2, ..., valueN)
其中,value
是要判断的值,可以是任何类型的值,比如数字,字符串,日期,时间,二进制等。value1, value2, ..., valueN
是一个集合,可以是一个常量列表,一个子查询,或者一个表名。如果 value
是 NULL
,或者集合中没有任何元素,或者集合中的所有元素都是 NULL
,则返回 NULL
。如果 value
等于集合中的任何一个元素,则返回 TRUE
。如果 value
不等于集合中的任何一个元素,则返回 FALSE
。
实例
下面是一些使用 IN
操作符的实例,以及相应的代码和输出结果。
使用常量列表作为集合
SELECT 'A' IN ('A', 'B', 'C');
SELECT 10 IN (1, 2, 3, 4, 5);
SELECT '2024-02-23' IN ('2024-02-22', '2024-02-23', '2024-02-24');
1
0
1
在这个实例中,我们使用 IN
操作符判断一个值是否在一个常量列表中。注意,字符串的比较是区分大小写的。
使用子查询作为集合
CREATE TABLE students (
id INT PRIMARY KEY,
name VARCHAR(20),
score INT
);
INSERT INTO students VALUES
(1, 'Alice', 90),
(2, 'Bob', 80),
(3, 'Charlie', 70),
(4, 'David', 60),
(5, 'Eve', 50);
分别执行一下语句:
SELECT * FROM students WHERE score IN (SELECT MAX(score) FROM students);
SELECT * FROM students WHERE name IN (SELECT name FROM students WHERE score > 60);
SELECT * FROM students WHERE id IN (SELECT id FROM students WHERE score < 60);
运行结果如下:
+----+-------+-------+
| id | name | score |
+----+-------+-------+
| 1 | Alice | 90 |
+----+-------+-------+
+----+---------+-------+
| id | name | score |
+----+---------+-------+
| 1 | Alice | 90 |
| 2 | Bob | 80 |
| 3 | Charlie | 70 |
+----+---------+-------+
+----+------+-------+
| id | name | score |
+----+------+-------+
| 5 | Eve | 50 |
+----+------+-------+
在这个实例中,我们使用 IN
操作符判断一个值是否在一个子查询的结果中。注意,子查询必须返回一列,否则会报错。
相关函数
除了 IN
操作符外,MariaDB 还提供了一些与集合相关的函数,如下:
FIND_IN_SET()
函数:判断一个字符串是否在一个逗号分隔的字符串列表中,返回其位置,如果不在,返回 0。NOT IN
操作符:判断一个值是否不在一个集合中,返回布尔值。
结论
本文介绍了 MariaDB 的 IN
操作符的基础用法与实例,它可以判断一个值是否在一个集合中。IN
操作符是一个常用的操作符,它可以用于对数据进行筛选,查询,比较等场景。