我有一个包含多行数据的表,这些数据属于单个用户。 例如:
regno course score session semester
03/01/02 Mth111 60 2 3
03/01/02 MTH222 50 2 3
03/04/05 MTH333 40 2 3
03/04/05 MTH111 30 2 3
我希望以这种方式将每个regno的特定会话和学期的值显示在一行中:
regno
03/01/02 MTH111 MTH222
60 50
03/04/05 MTH333 MTH111
40 30
我尝试使用group by ....使用带有mysql_fetch_assoc的foreach循环来获取列标题和group by子句......但只显示了一行。我怎么能解决这个问题。谢谢。
答案 0 :(得分:0)
您可以使用以下
select regno, concat(course,'\n',score) as someName from table1
或
select regno, concat(course,'<br>',score) as someName from table1
如果您要显示HTML。
编辑:对了,我明白你的意思了。
select regno, group_concat(concat(course, '|', score)) as courses from table1 group by regno
的结果
03/01/02 Mth111|60,MTH222|50
03/04/05 MTH333|40,Mth111|30
答案 1 :(得分:0)
另一种解决方案是将这些记录引入程序并按照您需要的方式对其进行格式化。
通过这种方式,以后可以更容易理解和调试。