查找在MySQL的列上具有相同值的行?

首先,我们将创建一个表并将一些值插入表中。让我们创建一个表。

mysql> create table RowValueDemo
   -> (
   -> Name varchar(100)
   -> );

使用insert命令插入记录。我们还为示例添加了重复值。

mysql> insert into RowValueDemo values('John');

mysql> insert into RowValueDemo values('Bob');

mysql> insert into RowValueDemo values('Carol');

mysql> insert into RowValueDemo values('John');

mysql> insert into RowValueDemo values('John');

mysql> insert into RowValueDemo values('John');

mysql> insert into RowValueDemo values('Bob');

mysql> insert into RowValueDemo values('Bob');

在select语句的帮助下显示所有记录。

mysql> select *from RowValueDemo;

这是输出。

+-------+
| Name  |
+-------+
| John  |
| Bob   |
| Carol |
| John  |
| John  |
| John  |
| Bob   |
| Bob   |
+-------+
8 rows in set (0.00 sec)

现在,我们将使用以下查询仅获取具有相同列值的行:

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

以下是输出。

+------+
| Name |
+------+
| John |
| Bob  |
| John |
| John |
| John |
| Bob  |
| Bob  |
+------+
7 rows in set (0.06 sec)