MariaDB
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> MariaDB

Chuyển đổi kết quả truy vấn thành danh sách được phân tách bằng dấu phẩy trong MariaDB

Trong MariaDB, chúng ta có thể sử dụng GROUP_CONCAT() chức năng trả về kết quả truy vấn của chúng tôi dưới dạng danh sách được phân tách bằng dấu phẩy. Ý tôi là, đối với một cột nhất định, chúng ta có thể chuyển đổi tất cả các hàng thành một hàng duy nhất chứa danh sách các giá trị được phân tách bằng dấu phẩy của các giá trị tạo nên cột đó. Mỗi hàng là một mục riêng biệt trong danh sách.

Ví dụ

Giả sử chúng ta chạy truy vấn sau:

SELECT meal 
FROM guest_meals;

Kết quả:

+---------+
| meal    |
+---------+
| Salad   |
| Fish    |
| Burrito |
| Pasta   |
| Salad   |
| Salad   |
+---------+
6 rows in set (0.001 sec)

Truy vấn đó dẫn đến sáu hàng.

Chúng ta có thể chuyển đổi các hàng đó thành một hàng được phân tách bằng dấu phẩy như sau:

SELECT GROUP_CONCAT(meal) 
FROM guest_meals;

Kết quả:

+--------------------------------------+
| GROUP_CONCAT(meal)                   |
+--------------------------------------+
| Salad,Fish,Burrito,Pasta,Salad,Salad |
+--------------------------------------+
1 row in set (0.003 sec)

Thay đổi Dấu phân cách

Chúng ta có thể chỉ định dấu phân tách của riêng mình bằng cách chuyển nó vào hàm, có tiền tố là SEPARATOR từ khóa:

SELECT GROUP_CONCAT(meal SEPARATOR ' + ') 
FROM guest_meals;

Kết quả:

Salad + Fish + Burrito + Pasta + Salad + Salad

Sắp xếp kết quả

Chúng tôi có thể sắp xếp kết quả bằng cách sử dụng ORDER BY mệnh đề trong hàm:

SELECT GROUP_CONCAT(meal ORDER BY meal ASC) 
FROM guest_meals;

Kết quả:

Burrito,Fish,Pasta,Salad,Salad,Salad

Chỉ trả lại các giá trị duy nhất

Chúng tôi có thể sử dụng DISTINCT mệnh đề chỉ trả về các giá trị duy nhất:

SELECT GROUP_CONCAT(DISTINCT meal ORDER BY meal ASC) 
FROM guest_meals;

Kết quả:

Burrito,Fish,Pasta,Salad

Giới hạn kết quả

Chúng tôi có thể sử dụng LIMIT điều khoản giới hạn số lượng mục trong danh sách:

SELECT GROUP_CONCAT(DISTINCT meal ORDER BY meal ASC LIMIT 3) 
FROM guest_meals;

Kết quả:

Burrito,Fish,Pasta

Truy vấn được nhóm

GROUP_CONCAT() chức năng có thể hữu ích khi chạy các truy vấn được nhóm. Xem MariaDB GROUP_CONCAT() để làm ví dụ.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sự khác biệt giữa TRIM () và TRIM_ORACLE () trong MariaDB

  2. Cài đặt MariaDB trên máy Mac

  3. HA cho MySQL và MariaDB - So sánh bản sao Master-Master với Galera Cluster

  4. Giải thích về toán tử MariaDB MINUS

  5. Kết hợp sức mạnh của SQL và các câu lệnh thủ tục với Chế độ tương thích Oracle của MariaDB