MySQL是一个数据库应用程序,以行和列的形式将数据存储在表中。该数据库应用程序可以在表中存储重复的记录,这可能会影响MySQL中数据库的性能。但是,由于各种原因会发生数据重复,因此在MySQL中使用数据库时,在表中查找重复值是一项重要的任务。
让无涯教程借助一个示例来理解它。首先,将使用以下语句创建一个名为" student_contacts "的表:
CREATE TABLE student_contacts ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50) NOT NULL, state VARCHAR(50) NOT NULL, email VARCHAR(255) NOT NULL );
接下来,将使用 INSERT 语句将记录填充到表中,如下所示:
INSERT INTO student_contacts (name, state, email) VALUES ('Carine', 'Texas', 'carine@learnfk.com'), ('Carine', 'Texas', 'carine@learnfk.com'), ('Peter', 'New York', 'peter@learnfk.com'), ('Janine ', 'Florida', 'janine@learnfk.com'), ('Janine ', 'Florida', 'janine@learnfk.com'), ('Jonas ', 'Atlanta', 'jonas@learnfk.com'), ('Jean', 'California', 'jean@learnfk.com'), ('Jean', 'California', 'jean@learnfk.com'), ('Mark ', 'Florida', 'mark@learnfk.com'), ('Roland', 'Alabama', 'roland@learnfk.com'), ('Roland', 'Alabama', 'roland@learnfk.com'), ('Julie', 'Texas', 'julie@learnfk.com'), ('Shane', 'New York', 'shane@learnfk.com'), ('Susan', 'Arizona', 'susan@learnfk.com'), ('Susan', 'Arizona', 'susan@learnfk.com');
执行 SELECT 语句以验证记录:
在此表中,无涯教程可以看到存在具有重复值的各种行。
无涯教程可以使用以下步骤在表中找到重复的条目:
链接:https://www.learnfk.comhttps://www.learnfk.com/mysql/mysql-find-duplicate-records.html
来源:LearnFk无涯教程网
以下语法说明了上述步骤:
SELECT column, COUNT(column) FROM table_name GROUP BY column HAVING COUNT(column) > 1;
借助以上语法,可以使用以下语句在student_contacts表中查找名称重复的行:
SELECT name, email, COUNT(name) FROM student_contacts GROUP BY name HAVING COUNT(name) > 1;
执行上述语句后,将获得以下输出,其中显示重复的名称和电子邮件:
有时无涯教程需要根据多个列查找重复的值。在这种情况下,可以使用如下语法:
SELECT column1, COUNT(column1), column2, COUNT(column2),…… FROM table_name GROUP BY column1, column2, ....... HAVING (COUNT(column1) > 1) AND (COUNT(column2) > 1) AND …....
应注意,在多列中查找重复项时,仅当列的组合重复时,行才会重复。因此,需要在 HAVING 子句中使用 AND 运算符。
例如,如果想在student_contacts表中查找在name,state,和email列中包含重复值的行,则可以使用以下查询:
SELECT name, COUNT(name), state, COUNT(state), email, COUNT(email) FROM student_contacts GROUP BY name, state, email HAVING COUNT(name) > 1 AND COUNT(state) > 1 AND COUNT(email) > 1;
执行上述语句后,无涯教程将获得以下输出,其中显示重复的名称,状态和电子邮件列:
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)