簡體   English   中英

如何在mysql中的單行中顯示多行中的多個數據

[英]How to display multiple data from multiple rows in single row in mysql

我有一個表,該表包含屬於單個用戶的多行數據。 例如:

            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子句...但僅顯示了一行。 我該如何解決。謝謝。

您可以使用以下內容

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

SQLFiddle的結果

03/01/02    Mth111|60,MTH222|50
03/04/05    MTH333|40,Mth111|30

另一個解決方案是將這些記錄放入程序中,並按照需要的方式對其進行格式化。

這樣,以后將更易於理解和調試。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM