在 MySQL 中查找在某一列上具有相同值的那些行?
首先,我们将创建一个表,并将一些值插入到表中。让我们创建一个表。
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)
广告