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

Cách nối các trường trong MySQL?

Để nối các trường trong MySQL, bạn có thể sử dụng GROUP_CONCAT() kết hợp với GROUP BY. Trước hết, hãy tạo một bảng:

mysql> create table DemoTable ( StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, StudentName varchar(30), StudentScore int ); Query OK, 0 rows affected (0.51 sec)

Chèn các bản ghi vào bảng bằng lệnh insert:

mysql> insert into DemoTable( StudentName,StudentScore) values('Bob',80); Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable( StudentName,StudentScore) values('Bob',80); Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable( StudentName,StudentScore) values('Chris',90); Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable( StudentName,StudentScore) values('Chris',70); Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable( StudentName,StudentScore) values('Bob',50); Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable( StudentName,StudentScore) values('David',60); Query OK, 1 row affected (0.23 sec)
mysql> insert into DemoTable( StudentName,StudentScore) values('Chris',99); Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable( StudentName,StudentScore) values('David',88); Query OK, 1 row affected (0.18 sec)

Hiển thị tất cả các bản ghi từ bảng bằng câu lệnh select:

mysql> select * from DemoTable;

Điều này sẽ tạo ra đầu ra sau:

+-----------+-------------+--------------+
| StudentId | StudentName | StudentScore |
+-----------+-------------+--------------+
| 1         | Bob         | 80           |
| 2         | Bob         | 80           |
| 3         | Chris       | 90           |
| 4         | Chris       | 70           |
| 5         | Bob         | 50           |
| 6         | David       | 60           |
| 7         | Chris       | 99           |
| 8         | David       | 88           |
+-----------+-------------+--------------+
8 rows in set (0.00 sec)

Truy vấn sau để nối các trường trong MySQL:

mysql> select StudentName, group_concat(StudentScore separator ',') as Score from DemoTable group by StudentName;

Điều này sẽ tạo ra đầu ra sau:

+-------------+----------+
| StudentName | Score    |
+-------------+----------+
| Bob         | 80,80,50 |
| Chris       | 90,70,99 |
| David       | 60,88    |
+-------------+----------+
3 rows in set (0.24 sec)