不確定標題是否真正定義了我正在尋找的內容。mysql - 返回第一列一次,並返回所有相應的列數據
我想要做的是返回具有匹配列值的所有行。僅顯示第一個值一次,並顯示所有其他列。這裏有一個直觀的表:
id name data
======================
0 john data1
1 john data2
2 jane data1
3 jane data2
4 jane data3
因此,作爲結果將顯示:
john
data1
data2
jane
data1
data2
data3
我知道我可以使用DISTINCT
得到名稱一次,但我需要得到所有名稱首先查詢,然後做一個循環並運行第二個查詢,或者我可以在一個語句中執行此操作嗎?
現在我有一個foreach
使用數組來循環和獲取所有內容。因此,當前顯示爲:
john - data1
john - data2
jane - data1
jane - data2
jane - data3
這似乎只是美觀不好,每次顯示的第一列,但我也不太清楚如何有效地去了解這一點。
謝謝你的幫助。
SQL查詢返回結果的方式只是它的樣子 - SQL將返回一個2D數據集,其中每行與周圍的行沒有關係。你所要求的實際上是你輸出格式化的領域,而不是在SQL查詢中完成。如果您發佈用於寫出這些結果的PHP代碼,我們可以建議如何修改它以獲得所需的演示文稿。 –
在PHP中執行此操作,而不是MySQL。讓你的循環檢查名稱是否與前一行相同。只有在名稱標題更改時才顯示。 – Barmar
這不是SQL的工作原理。用於顯示列的控制中斷邏輯應位於表示層而不是數據層。 – xQbert