我正在尝试在 MYSQL 中编写查询。我有一个名为 student_data
的表。它有 4 列。
student_data_id
student_id
course_name
registerd_time
我正在尝试检索为每个学生注册的类(class)。我使用了以下查询。
select
student_id,course_name from student_data
where
student_id IN(2224508,22260211) and
course_name IN('Java','Salesforce','Unix','VBScript') and
registered_time > NOW() - INTERVAL 1 DAY
group by student_id,course_name;
我得到以下输出:
2224508 Java
2224508 Salesforce
2224508 Unix
22260211 Java
22260211 Salesforce
22260211 VBScript
我正在尝试以这种格式获取输出:
2224508 Java,Salesforce,Unix
22260211 Java,Salesforce,VBScript
如何编写查询或JDBC模板来获取上述格式?
最佳答案
GROUP_CONCAT 函数使用默认分隔符连接一个 GROUP(在本例中为 student_id),
SET SESSION group_concat_max_len = @@max_allowed_packet
select
student_id
, GROUP_CONCAT(course_name)
from student_data
where
student_id IN(2224508,22260211) and
course_name IN('Java','Salesforce','Unix','VBScript') and
registered_time > NOW() - INTERVAL 1 DAY
group by student_id;
关于mysql - 查询以从 map 列表中的 mysql 检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46791962/