mysql - 如何在查询中使用两列的 GROUP_CONCAT

标签 mysql group-concat

我的查询是这样的

SELECT * FROM  semesters WHERE student_id = 434 AND marks_id <=  576 AND semester_id <=  2345

我有一个表“学期”,我在 MySQL 中使用我的查询获取包含以下数据的输出:

id       semester_id       exam_id      student_id   marks_id
1          2344               25            434       255
2          2344               34            434       575 
3          2345               48            434       576

如何通过查询将其转换为以下格式?

 id          semester_id        exam_id      student_id   marks_id
 1             2344              25,34          434       255,575
 2             2345               48            434         576

我想要 semster_id 2344 有两个 exam_id,我想将两个 exam_id 和 marks_id 合并成一行,用逗号分隔。我想我必须使用 GROUP_CONCAT,但我不确定它是如何工作的。提前致谢。

最佳答案

使用 MySQL GROUP_CONCATgroup by

SELECT *,GROUP_CONCAT(exam_id) as exam_id,GROUP_CONCAT(marks_id) 
as marks_id FROM  semesters group by semester_id

关于mysql - 如何在查询中使用两列的 GROUP_CONCAT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33563600/

相关文章:

php - MySQL语法错误

mysql - 在 MYSQL 查询中设置边界 LIKE

php - php pdo 内存不足

java - 达到 hibernate.c3p0.timeout 后数据库连接会发生什么?

mysql - CONCAT 周围的 GROUP_CONCAT 给出错误 - 组函数的使用无效

来自 JOIN 子句的 MySQL LIKE 和 GROUP_CONCAT 仅从连接表返回一行

mysql - SQL - SELECT WHERE 存储在 JSON varchar 中的日期大于或小于固定日期

mysql - MySQL中可能存在或不存在的引用数据

mySQL >> 使用 CONCAT、GROUP_CONCAT 和多个 JOINS 的查询速度非常慢(63 条记录需要 100 秒)

MySQL使用group_concat选择多个关系表到一行