Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

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


Tạo bảng và chèn dữ liệu (có trùng)

mysql> CREATE TABLE RowValueDemo (Name VARCHAR(100));
Query OK, 0 rows affected (0.69 sec)
mysql> INSERT INTO RowValueDemo VALUES
    -> ('John'),('Bob'),('Carol'),('John'),('John'),('John'),('Bob'),('Bob');
Query OK, 8 rows affected
mysql> SELECT * FROM RowValueDemo;
+-------+
| Name  |
+-------+
| John  |
| Bob   |
| Carol |
| John  |
| John  |
| John  |
| Bob   |
| Bob   |
+-------+
8 rows in set (0.00 sec)

Truy vấn lấy hàng có giá trị trùng lặp (xuất hiện > 1 lần)

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)

Loại bỏ 'Carol' (chỉ xuất hiện 1 lần). Trả về 7 hàng: 4 John + 3 Bob.