Sử dụng GROUP_CONCAT() để gộp nhiều hàng thành một chuỗi phân cách bằng dấu phẩy (CSV).
Tạo bảng và dữ liệu
mysql> CREATE TABLE DemoTable786(
StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
StudentName VARCHAR(100)
) AUTO_INCREMENT = 101;
Query OK, 0 rows affected (0.70 sec)
mysql> INSERT INTO DemoTable786(StudentName) VALUES
('Chris'), ('Robert'), ('Mike'), ('Sam');
Query OK, 4 rows affected
Truy vấn xuất CSV
mysql> SELECT
GROUP_CONCAT(StudentId),
GROUP_CONCAT(StudentName)
FROM DemoTable786;
Kết quả:
+-------------------------+---------------------------+ | GROUP_CONCAT(StudentId) | GROUP_CONCAT(StudentName) | +-------------------------+---------------------------+ | 101,102,103,104 | Chris,Robert,Mike,Sam | +-------------------------+---------------------------+
Tùy chọn hữu ích:
GROUP_CONCAT(DISTINCT col)- loại trùng lặpGROUP_CONCAT(col ORDER BY col DESC)- sắp xếp trước khi gộpGROUP_CONCAT(col SEPARATOR ';')- đổi dấu phân cáchSET SESSION group_concat_max_len = 1000000;- tăng giới hạn độ dài