首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP MySQL将不同行中的单元格合并为相同的值

PHP MySQL将不同行中的单元格合并为相同的值
EN

Stack Overflow用户
提问于 2013-01-17 10:28:46
回答 2查看 6K关注 0票数 4

我有一个数据库,里面有身份证号码、姓名、课时和老师姓名。每一行都包含一个学生的id、姓名、句号和教师,这意味着每个学生都有多行。那不是我的问题。我的问题是,有些班级有两个老师,listed...which的意思是每节课有两个单独的行,每个老师一个。不幸的是,我无法控制数据的格式,因为它是从一个没有很多格式选项的系统导出的。

这里有一个例子,注意23行和24行是如何针对相同的课时和学生的,但唯一不同的是老师的名字。

代码语言:javascript
复制
pk  id      last    first   period  teacher
14  12345   Smith   John    3       HARRIS
15  12345   Smith   John    8       LEAL
17  12345   Smith   John    1       HOUSTON
23  56789   Doe     Jane    8       MERCER
24  56789   Doe     Jane    8       RUIZ
25  56789   Doe     Jane    3       BECK
26  56789   Doe     Jane    1       STEED

我想将具有相同学号和学生姓名的两行合并到一行中。所有的信息都将保持不变,除了两个不同的老师的名字将被组合成类似于"Mercer &Ruiz“的名称。理想情况下,最终结果应该是这样的,

代码语言:javascript
复制
24  56789   Doe Jane    8   MERCER & RUIZ

这可以使用PHP和/或MySQL吗?我不寻找任何人来写整个代码或任何东西。我似乎就是想不出一个方法来完成它。我很高兴有任何方向/指示来实现这一点。

一如既往,感谢您的时间和帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-17 10:31:17

代码语言:javascript
复制
SELECT  MAX(pk), 
        ID,
        `last`, 
        `first`,
        GROUP_CONCAT(teacher SEPARATOR ' & ') teachers
FROM    tableName
// WHERE clause here...
GROUP BY `last`, `first`, `Period`
// ORDER BY clause here....

  • SQLFiddle Demo

SOOURCE

  • GROUP_CONCAT()
票数 6
EN

Stack Overflow用户

发布于 2013-01-17 10:31:45

代码语言:javascript
复制
SELECT pk,id,last,first,period GROUP_CONCAT(teacher) 
FROM table 
GROUP BY id, first,last,period

应该做你需要的事情。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14371264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档