2017-02-21 50 views
0

我有一個SQL table_1數據如下:創建一個從多行查詢單行SQL入門,並張貼到新表

enter image description here

沒有與和相同的MSISDN被重複多個條目,但在每行中有不同的servicCodes

我想的信息複製到新table_2,但每個MSISDN只有一個入口,並分配給它的服務的一些額外列。這可以使用單個SQL查詢來完成,還是最好使用PHP來執行不同的查詢並循環遍歷結果?

謝謝。

+0

要clearify,結果必須包含每個MSISDN的MSISDN,服務1 = GP26,服務2 = MMS,服務3 = A131等等,直到達到下一個MSISDN。然後重複下一個條目的過程。這可能與Excel工作表的數據透視表佈局類似。 –

回答

1

使用SQL,您可以創建與串聯的servicCodes列第二表。您可以使用GROUP BY在MSISDN列周圍進行聚合。

SELECT MSISDN, GROUP_CONCAT(servicCodes) as servicCodes_concatenated 
FROM table 
GROUP BY MSISDN 

如果您想要創建多個列來獲取servicCodes的值,那麼使用PHP更容易。

+1

超級,謝謝。它工作正常,所以我需要做的是確定指定的MSISDN上是否存在服務代碼是運行LIKE查詢。欣賞快速響應。 –

+0

太棒了!你能否將我的答案標記爲已接受? – Fredster

0

我猜你在找什麼叫做數據透視表。

mysql pivot table

一切都是最有可能說有,所以他們只是一個評論:

當你定義每個動態列名很難(ER)來處理lateron那些列。因此,您可能需要一些更復雜的程序來進一步/其他使用該數據,而不僅僅是報告數據。

+0

@LouisMeyer:正如我看到你在後面的評論中提到他們。我一直在寫我的答案時一定是。所以我很抱歉,如果我告訴你你已經知道了什麼。爲了避免這種情況,我建議在標題或問題中註明這樣一個重要的關鍵字。 – RuDevel