MySQL 如何选择所有重复项

MySQL 如何选择所有重复项

要选择重复项,可以使用子查询。让我们首先创建一个表−

mysql> create table DemoTable
   -> (
   -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   -> Name varchar(100)
   -> );
查询成功,受影响的行数为0,用时0.87秒

使用插入命令在表中插入一些记录−

mysql> insert into DemoTable(Name) values('约翰');
查询成功,受影响的行数为1,用时0.16秒

mysql> insert into DemoTable(Name) values('克里斯');
查询成功,受影响的行数为1,用时0.21秒

mysql> insert into DemoTable(Name) values('约翰');
查询成功,受影响的行数为1,用时0.14秒

mysql> insert into DemoTable(Name) values('大卫');
查询成功,受影响的行数为1,用时0.13秒

mysql> insert into DemoTable(Name) values('鲍勃');
查询成功,受影响的行数为1,用时0.15秒

mysql> insert into DemoTable(Name) values('克里斯');
查询成功,受影响的行数为1,用时0.16秒

mysql> insert into DemoTable(Name) values('迈克');
查询成功,受影响的行数为1,用时0.14秒

mysql> insert into DemoTable(Name) values('罗伯特');
查询成功,受影响的行数为1,用时0.11秒

mysql> insert into DemoTable(Name) values('迈克');
查询成功,受影响的行数为1,用时0.12秒

使用select语句显示表中的所有记录−

mysql> select * from DemoTable;

阅读更多:MySQL 教程

输出

+----+--------+
| Id | Name   |
+----+--------+
| 1  | 约翰   |
| 2  | 克里斯  |
| 3  | 约翰   |
| 4  | 大卫   |
| 5  | 鲍勃   |
| 6  | 克里斯  |
| 7  | 迈克   |
| 8  | 罗伯特 |
| 9  | 迈克   |
+----+--------+
9 rows in set (0.00 sec)

以下是选择所有重复项的查询语句−

mysql> select * from DemoTable
   -> where Name in (select Name from DemoTable group by Name having count(*) > 1);

输出

+----+-------+
| Id | Name  |
+----+-------+
| 1  | 约翰  |
| 2  | 克里斯 |
| 3  | 约翰  |
| 6  | 克里斯 |
| 7  | 迈克  |
| 9  | 迈克  |
+----+-------+
6 rows in set (0.09 sec)

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程