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

Tìm bản ghi trùng lặp và gom nhóm hiển thị trên một dòng trong MySQL

Mục tiêu

Nhóm các bản ghi trùng lặp theo cột StudentFavouriteSubject và nối tên học sinh (StudentName) thành một chuỗi phân cách bằng dấu phẩy.

1. Tạo bảng

mysql> create table DemoTable (
    StudentFavouriteSubject varchar(40),
    StudentName varchar(40)
);
Query OK, 0 rows affected (0.75 sec)

2. Chèn dữ liệu

mysql> insert into DemoTable values('MySQL','Chris');
mysql> insert into DemoTable values('MongoDB','Bob');
mysql> insert into DemoTable values('MySQL','Sam');
mysql> insert into DemoTable values('Java','Mike');
mysql> insert into DemoTable values('C','Carol');
mysql> insert into DemoTable values('MongoDB','John');

3. Xem dữ liệu

mysql> select * from DemoTable;
+-------------------------+-------------+
| StudentFavouriteSubject | StudentName |
+-------------------------+-------------+
| MySQL                   | Chris       |
| MongoDB                 | Bob         |
| MySQL                   | Sam         |
| Java                    | Mike        |
| C                       | Carol       |
| MongoDB                 | John        |
+-------------------------+-------------+
6 rows in set (0.00 sec)

4. Truy vấn GROUP_CONCAT

mysql> select group_concat(StudentName), StudentFavouriteSubject
    from DemoTable group by StudentFavouriteSubject;

Kết quả:

+---------------------------+-------------------------+
| group_concat(StudentName) | StudentFavouriteSubject |
+---------------------------+-------------------------+
| Carol                     | C                       |
| Mike                      | Java                    |
| Bob,John                  | MongoDB                 |
| Chris,Sam                 | MySQL                   |
+---------------------------+-------------------------+
4 rows in set (0.00 sec)

Ứng dụng: Báo cáo tóm tắt, xuất dữ liệu cho frontend hiển thị gọn.