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