mysql如何分组拼接字符串

2023-12-12 09:00:06 举报文章

MySQL是一个功能强大的关系型数据库管理系统,它提供了多种方法来操作数据库中的数据,其中之一是分组拼接字符串。

假设我们有一个students表,其中包含学生的姓名和考试成绩:

--by www.qzphp.cn
CREATE TABLE students (
  
  id INT AUTO_INCREMENT PRIMARY KEY,
  
  name VARCHAR(50),
  
  score INT
);
INSERT INTO students (name, score) VALUES
  
  ('Alice', 80),
  
  ('Bob', 90),
  
  ('Charlie', 85),
  
  ('David', 95),
  
  ('Eva', 70),
  
  ('Frank', 75),
  
  ('Grace', 88),
  
  ('Henry', 93);
 

我们想要按照成绩进行分组,并将每个组内的学生姓名拼接成一个字符串。可以使用GROUP_CONCAT函数来实现:

--by www.qzphp.cn
SELECT score, GROUP_CONCAT(name) AS names
FROM students
GROUP BY score;
 

运行以上SQL语句后,将得到以下结果:

--by www.qzphp.cn
+-------+----------------------+
| score | names  
   
   
   
   
  |
+-------+----------------------+
|  
  70 | Eva  
   
   
   
   
   
 |
|  
  75 | Frank  
   
   
   
   
  |
|  
  80 | Alice  
   
   
   
   
  |
|  
  85 | Charlie  
   
   
   
 |
|  
  88 | Grace  
   
   
   
   
  |
|  
  90 | Bob  
   
   
   
   
   
 |
|  
  93 | Henry  
   
   
   
   
 |
|  
  95 | David  
   
   
   
   
  |
+-------+----------------------+ 

可以看到,每个分组内的学生姓名被拼接成了一个字符串,并且按照成绩进行了分组。

GROUP_CONCAT函数不仅支持在拼接字符串时添加分隔符(默认为逗号),还支持对拼接出的字符串进行排序、去重等操作。具体用法可以参考MySQL官方文档。

如果你认为本文可读性较差,内容错误,或者文章排版错乱,请点击举报文章按钮,我们会立即处理!