📅  最后修改于: 2023-12-03 15:23:30.498000             🧑  作者: Mango
在某些情况下,我们需要在数据库的列中查找重复的值。这个问题看起来很简单,但是我们需要使用 SQL 中的一些函数来解决它。
在本文中,我们将使用以下示例表格:
CREATE TABLE users (
id INT PRIMARY KEY,
name VARCHAR(50),
email VARCHAR(50)
);
INSERT INTO users (id, name, email) VALUES
(1, 'Tom', 'tom@example.com'),
(2, 'Jerry', 'jerry@example.com'),
(3, 'Mickey', 'mickey@example.com'),
(4, 'Minnie', 'mickey@example.com'),
(5, 'Donald', 'donald@example.com'),
(6, 'Daisy', 'donald@example.com');
为了查找表中的重复行,我们可以使用以下 SQL 查询:
SELECT name, email, COUNT(*) count
FROM users
GROUP BY name, email
HAVING count > 1;
该查询将返回重复的用户名和电子邮件地址,以及它们在表中出现的次数:
| name | email | count | | ------- | ------------------| ----- | | Mickey | mickey@example.com| 1 | | Donald | donald@example.com| 2 |
我们可以在 HAVING
子句中使用 count
函数来过滤出出现次数大于 1 的重复行。
如果我们只想查找某一列中的重复值,可以使用以下 SQL 查询:
SELECT email, COUNT(*) count
FROM users
GROUP BY email
HAVING count > 1;
该查询将返回重复的电子邮件地址及其在表中出现的次数:
| email | count | | ------------------| ----- | | mickey@example.com| 2 | | donald@example.com| 2 |
我们可以在 GROUP BY
子句中只指定我们想要查找重复值的列,然后在 HAVING
子句中使用 count
函数来过滤出出现次数大于 1 的重复值。
在本文中,我们介绍了如何使用 SQL 查找表格中的重复行或列。我们使用了 COUNT
函数和 GROUP BY
子句来实现它。除了本文中的方法之外,还有一些其他的方法可以用于解决这个问题。