将行收集到1行并添加列

时间:2016-01-15 21:52:44

标签: php html mysql html-table

您好我正在学习编程,我正在开发一个php和mysql项目,但我遇到了问题。

我正在做的是我有一个名为marks的表格,每当人们为学生添加标记时,他们会在表格中添加一列,表格如下:

|------------------|
|  subject | marks |
|------------------|
|   math   |  16   |
|  english |  18   | 
|  history |  15   | 
|  math    |  14   |  
|  english |  20   |  
|------------------|

但是当我对待它时,我想改变它:

|-------------------------|
|   math   |  16   |  14  |
|  english |  18   |  20  |
|  history |  15   |      |
|-------------------------|

如何使用mysql的查询或php(如果需要)?

我的最终目标是用这个制作html表,但我已经知道该怎么做了。

我很抱歉,如果它看起来很简单,但我真的是数据库和编程的初学者,如果标题让你们感到困惑,我很抱歉。

1 个答案:

答案 0 :(得分:0)

你可以尝试

SELECT subject, GROUP_CONCAT(marks ORDER BY marks) marks
  FROM table
 GROUP BY subject
 ORDER BY subject

它会给你两列,一列是以逗号分隔的主题列表。

english 18, 20
history 15
math    14, 16