在 MySQL 的列上查找具有相同值的行?
mysqlmysqli database
首先,我们将创建一个表并向表中插入一些值。让我们创建一个表。
mysql> create table RowValueDemo -> ( -> Name varchar(100) -> ); Query OK, 0 rows affected (0.69 sec)
使用插入命令插入记录。我们还为我们的示例添加了重复值。
mysql> insert into RowValueDemo values('John'); Query OK, 1 row affected (0.14 sec) mysql> insert into RowValueDemo values('Bob'); Query OK, 1 row affected (0.14 sec) mysql> insert into RowValueDemo values('Carol'); Query OK, 1 row affected (0.11 sec) mysql> insert into RowValueDemo values('John'); Query OK, 1 row affected (0.24 sec) mysql> insert into RowValueDemo values('John'); Query OK, 1 row affected (0.09 sec) mysql> insert into RowValueDemo values('John'); Query OK, 1 row affected (0.10 sec) mysql> insert into RowValueDemo values('Bob'); Query OK, 1 row affected (0.09 sec) mysql> insert into RowValueDemo values('Bob'); Query OK, 1 row affected (0.18 sec)
通过 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)