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

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

Để tìm các giá trị xuất hiện cho nhiều ID cụ thể, sử dụng GROUP BY kết hợp HAVING với SUM(condition).

Tạo bảng và dữ liệu

mysql> CREATE TABLE DemoTable (
    -> StudentId INT,
    -> StudentMarks INT
    -> );
Query OK, 0 rows affected (4.71 sec)
mysql> INSERT INTO DemoTable VALUES(23, 58);
Query OK, 1 row affected (0.70 sec)
mysql> INSERT INTO DemoTable VALUES(25, 89);
Query OK, 1 row affected (0.46 sec)
mysql> INSERT INTO DemoTable VALUES(26, 58);
Query OK, 1 row affected (1.13 sec)
mysql> INSERT INTO DemoTable VALUES(28, 98);
Query OK, 1 row affected (0.86 sec)

Truy vấn tìm điểm số chung của StudentId 23 và 26

mysql> SELECT StudentMarks FROM DemoTable
    -> GROUP BY StudentMarks
    -> HAVING SUM(StudentId = 23) > 0
    -> AND SUM(StudentId = 26) > 0;

Kết quả:

+--------------+
| StudentMarks |
+--------------+
| 58           |
+--------------+
1 row in set (0.00 sec)

Cơ chế: SUM(StudentId = 23) đếm số hàng có StudentId = 23 trong mỗi nhóm điểm. > 0 nghĩa là điểm đó xuất hiện cho học sinh đó.