我有一個SQL table_1
數據如下:創建一個從多行查詢單行SQL入門,並張貼到新表
沒有與和相同的MSISDN被重複多個條目,但在每行中有不同的servicCodes
。
我想的信息複製到新table_2
,但每個MSISDN只有一個入口,並分配給它的服務的一些額外列。這可以使用單個SQL查詢來完成,還是最好使用PHP來執行不同的查詢並循環遍歷結果?
謝謝。
我有一個SQL table_1
數據如下:創建一個從多行查詢單行SQL入門,並張貼到新表
沒有與和相同的MSISDN被重複多個條目,但在每行中有不同的servicCodes
。
我想的信息複製到新table_2
,但每個MSISDN只有一個入口,並分配給它的服務的一些額外列。這可以使用單個SQL查詢來完成,還是最好使用PHP來執行不同的查詢並循環遍歷結果?
謝謝。
使用SQL,您可以創建與串聯的servicCodes列第二表。您可以使用GROUP BY
在MSISDN列周圍進行聚合。
SELECT MSISDN, GROUP_CONCAT(servicCodes) as servicCodes_concatenated
FROM table
GROUP BY MSISDN
如果您想要創建多個列來獲取servicCodes的值,那麼使用PHP更容易。
超級,謝謝。它工作正常,所以我需要做的是確定指定的MSISDN上是否存在服務代碼是運行LIKE查詢。欣賞快速響應。 –
太棒了!你能否將我的答案標記爲已接受? – Fredster
使用INSERT ... SELECT
語法,這樣您可以過濾和單查詢修改的行。 https://dev.mysql.com/doc/refman/5.7/en/insert-select.html
我猜你在找什麼叫做數據透視表。
一切都是最有可能說有,所以他們只是一個評論:
當你定義每個動態列名很難(ER)來處理lateron那些列。因此,您可能需要一些更復雜的程序來進一步/其他使用該數據,而不僅僅是報告數據。
@LouisMeyer:正如我看到你在後面的評論中提到他們。我一直在寫我的答案時一定是。所以我很抱歉,如果我告訴你你已經知道了什麼。爲了避免這種情況,我建議在標題或問題中註明這樣一個重要的關鍵字。 – RuDevel
要clearify,結果必須包含每個MSISDN的MSISDN,服務1 = GP26,服務2 = MMS,服務3 = A131等等,直到達到下一個MSISDN。然後重複下一個條目的過程。這可能與Excel工作表的數據透視表佈局類似。 –