MariaDB MINUS 运算符使用指南
在 MariaDB 中,MINUS
是一个内置的集合运算符,它返回两个结果集的差。
从 MariaDB 10.6.1 开始支持 MINUS
,以便与 Oracle 兼容。
在 MariaDB 10.6.1 及更高版本中, 您可以使用 MINUS
代替 EXCEPT
。
要使用 MINUS
,请先设置为 ORACLE 模式:
SET SESSION sql_mode='ORACLE';
MariaDB MINUS
语法
这里是 MariaDB MINUS
操作符的语法:
rs1 MINUS rs2
参数
rs1
- 必需的。 一个结果集。
rs2
- 必需的。 另一个结果集。
两个结果集必须具有相同的列。
返回值
rs1 MINUS rs2
返回两个结果集的差。也就是说 MINUS
返回哪些只存在于第一个结果集中但不存在于第二个结果集中的行。
MariaDB MINUS
示例
首先,让我们创建两个表以演示示例:
DROP TABLE IF EXISTS test_number_1;
CREATE TABLE test_number_1 (
num INT NOT NULL
);
DROP TABLE IF EXISTS test_number_2;
CREATE TABLE test_number_2 (
num INT NOT NULL
);
然后,让我们插入几行数据:
INSERT INTO test_number_1
VALUES (0), (1), (1), (2), (3), (4), (4);
INSERT INTO test_number_2
VALUES (3), (4), (4), (5), (6), (7), (8);
然后,让我们看一下 test_number_1
表中的数据:
SELECT * FROM test_number_1;
输出:
+-----+
| num |
+-----+
| 0 |
| 1 |
| 1 |
| 2 |
| 3 |
| 4 |
| 4 |
+-----+
让我们看一下 test_number_2
表中的数据:
SELECT * FROM test_number_2;
输出:
+-----+
| num |
+-----+
| 3 |
| 4 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
+-----+
如果您想要得到只存在于 test_number_1
表中的数字,请使用以下语句:
SELECT * FROM test_number_1
MINUS
SELECT * FROM test_number_2;
输出:
+-----+
| num |
+-----+
| 0 |
| 1 |
| 2 |
+-----+
如果您想要得到只存在于 test_number_2
表中的数字,请使用以下语句:
SELECT * FROM test_number_2
MINUS
SELECT * FROM test_number_1;
输出:
+-----+
| num |
+-----+
| 5 |
| 6 |
| 7 |
| 8 |
+-----+
注意, MINUS
默认返回唯一的行,如果您想获得所有的行,请使用 MINUS ALL
。
SELECT * FROM test_number_1
MINUS ALL
SELECT * FROM test_number_2;
输出:
+-----+
| num |
+-----+
| 0 |
| 1 |
| 2 |
| 1 |
+-----+
结论
在 MariaDB 中,MINUS
是一个内置的集合运算符,它返回两个结果集的差。