MySQL - GROUP_CONCAT() 函数
MySQL GROUP_CONCAT() 函数用于连接数据库表某一列中的所有非 NULL 值,并返回合并结果。此列中的所有值(无论其数据类型如何)均使用逗号连接,并以字符串形式返回。如果指定列中没有非 NULL 值,则此函数返回 NULL。
语法
以下是 MySQL GROUP_CONCAT() 函数的语法 -
CONCAT(expr);
参数
此方法接受一个参数。如下所示:-
expr: 要连接其值的列或表达式。
返回值
此函数返回一个字符串,该字符串由指定列或表达式的连接值组成。
示例
以下是演示此函数用法的示例。假设我们使用 CREATE TABLE 语句创建了一个名为 CUSTOMERS 的表,如下所示:-
CREATE TABLE CUSTOMERS ( ID INT AUTO_INCREMENT, NAME VARCHAR(20) NOT NULL, AGE INT NOT NULL, ADDRESS CHAR (25), SALARY DECIMAL (18, 2), PRIMARY KEY (ID) );
以下查询将 7 条记录插入到上面创建的表中 -
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY) VALUES (1, 'Ramesh', 32, 'Ahmedabad', 2000.00 ), (2, 'Khilan', 25, 'Delhi', 1500.00 ), (3, 'Kaushik', 23, 'Kota', 2000.00 ), (4, 'Chaitali', 25, 'Mumbai', 6500.00 ), (5, 'Hardik', 27, 'Bhopal', 8500.00 ), (6, 'Komal', 22, 'Hyderabad', 4500.00 ), (7, 'Muffy', 24, 'Indore', 10000.00 );
要显示插入到 CUSTOMERS 表的所有记录,请执行以下查询 -
Select * From CUSTOMERS;
以下是 CUSTOMERS 表 -
ID | NAME | AGE | ADDRESS | SALARY |
---|---|---|---|---|
1 | Ramesh | 32 | Ahmedabad | 2000.00 |
2 | Khilan | 25 | Delhi | 1500.00 |
3 | Kaushik | 23 | Kota | 2000.00 |
4 | Chaitali | 25 | Mumbai | 6500.00 |
5 | Hardik | 27 | Bhopal | 8500.00 |
6 | Komal | 22 | Hyderabad | 4500.00 |
7 | Muffy | 24 | Indore | 10000.00 |
以下查询从"CUSTOMERS"表中检索所有"NAME"值的串联字符串 -
SELECT GROUP_CONCAT(NAME) From CUSTOMERS;
这将产生以下结果 -
GROUP_CONCAT(NAME) |
---|
Ramesh,Khilan,Kaushik,Chaitali,Hardik,Komal,Muffy |
在这里,我们选择"AGE",并将"SALARY"值聚合到名为"Salaries"的 JSON 数组中,并根据"CUSTOMERS"表中的"AGE"列对结果进行分组。 -
SELECT AGE, GROUP_CONCAT(SALARY) As Salaries From CUSTOMERS GROUP BY AGE;
这将产生以下结果 -
AGE | Salaries |
---|---|
22 | 4500.00 |
23 | 2000.00 |
24 | 10000.00 |
25 | 1500.00,6500.00 |
27 | 8500.00 |
32 | 2000.00 |