Computer >> Máy Tính >  >> Lập trình >> MySQL

Tìm các hàng có cùng giá trị trên một cột trong MySQL?

Đầu tiên, chúng ta sẽ tạo một bảng và chèn một số giá trị vào bảng. Hãy để chúng tôi tạo một bảng.

mysql> create table RowValueDemo
   -> (
   -> Name varchar(100)
   -> );
Query OK, 0 rows affected (0.69 sec)

Chèn bản ghi bằng lệnh chèn. Chúng tôi cũng đã thêm các giá trị trùng lặp cho ví dụ của chúng tôi.

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)

Hiển thị tất cả các bản ghi với sự trợ giúp của câu lệnh select.

mysql> select *from RowValueDemo;

Đây là kết quả đầu ra.

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

Bây giờ, chúng tôi sẽ chỉ lấy các hàng có cùng giá trị cho cột bằng cách sử dụng truy vấn sau -

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

Sau đây là kết quả đầu ra.

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