在 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)

更新於: 30-7-2019

3K+ 瀏覽

開啟你的職業生涯

完成課程,獲得認證

開始
廣告