📜  mysql 查询唯一列 - SQL (1)

📅  最后修改于: 2023-12-03 15:03:06.941000             🧑  作者: Mango

MySQL 查询唯一列 - SQL

在 MySQL 中,查询一张表的唯一列可以使用 DISTINCT 或 GROUP BY 关键字。在本文中,我们将了解如何使用这些关键字来查询一张表的唯一列。

使用 DISTINCT 关键字查询唯一列

使用 DISTINCT 关键字可以过滤掉重复的行,从而查询出一张表的唯一列。以下是使用 DISTINCT 关键字查询唯一列的语法:

SELECT DISTINCT column_name(s) FROM table_name;

其中,SELECT DISTINCT 表示查询唯一列,column_name(s) 表示要查询的列名,可同时查询多个列,用逗号分隔,table_name 表示要查询的表名。

例如,对于如下的 employees 表:

| id | name | department | |----|------|------------| | 1 | Tom | HR | | 2 | Jane | Marketing | | 3 | Jim | HR | | 4 | Mary | Finance | | 5 | Bob | Marketing | | 6 | Sue | Finance |

要查询出 department 列的所有唯一值,可以使用以下 SQL 语句:

SELECT DISTINCT department FROM employees;

运行结果如下:

+------------+
| department |
+------------+
| HR         |
| Marketing |
| Finance   |
+------------+
使用 GROUP BY 关键字查询唯一列

使用 GROUP BY 关键字可以将行按组分成多个集合,再对每个集合进行聚合计算。对于一张表的唯一列,我们只需要将要查询的列名作为 GROUP BY 关键字的参数即可。以下是使用 GROUP BY 关键字查询唯一列的语法:

SELECT column_name(s) FROM table_name GROUP BY column_name(s);

其中,GROUP BY 表示按某列进行分组,column_name(s) 表示要分组的列名,可同时分组多个列,用逗号分隔,table_name 表示要查询的表名。

例如,要查询出 department 列的所有唯一值,可以使用以下 SQL 语句:

SELECT department FROM employees GROUP BY department;

运行结果与使用 DISTINCT 关键字相同。

总结

使用 DISTINCT 或 GROUP BY 关键字都可以查询一张表的唯一列。其中,使用 DISTINCT 关键字比较简单直接,但对于大数据量的表可能效率较低;而使用 GROUP BY 关键字则稍微复杂一些,但对于时间和空间的效率控制更好。在实际使用时应根据具体情况选择适合的方式。