将mysql查询结果行转换为列

时间:2016-10-13 07:31:43

标签: mysql transpose

我有一个名为$connection的mysql表,下面给出了样本数据和表格格式。

gps_stdnt_subj_xref

是否可以将表格数据输入以下格式?

gps_subj_id  gps_subject    gps_class   gps_subject_status

3            English        class_01    Y
10           EVS            class_01    Y
1            Maths          class_01    Y
11           EVS            class_02    Y
7            Maths          class_02    Y
12           EVS            class_03    Y
2            Maths          class_03    Y
13           EVS            class_04    Y
8            Maths          class_04    Y
5            English        class_05    Y
14           EVS            class_05    Y
9            Maths          class_05    Y
6            English        class_07    Y
4            English        class_12    Y

1 个答案:

答案 0 :(得分:0)

以下是我能找到您最近的要求:

    SELECT   gps_class,
        GROUP_CONCAT(IF( gps_subject='English',gps_subject,NULL))
        AS `eng_subject`,
        GROUP_CONCAT(IF(gps_subject='EVS' ,gps_subject,NULL))
        AS `evs_subject`,
        GROUP_CONCAT(IF(gps_subject='Maths',gps_subject,NULL))
        AS `maths_subject`
    FROM     gps_stdnt_subj_xref
    GROUP BY gps_class