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

Hiển thị giá trị cột dưới dạng CSV trong MySQL

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ặp
  • GROUP_CONCAT(col ORDER BY col DESC) - sắp xếp trước khi gộp
  • GROUP_CONCAT(col SEPARATOR ';') - đổi dấu phân cách
  • SET SESSION group_concat_max_len = 1000000; - tăng giới hạn độ dài