我有一個表記錄發送到不同平臺(有3)由用戶的消息。相同的消息可以發送到多個平臺。我想通過user_id和GROUP BY message_code對錶進行排隊,每個平臺都有自己的列,其中1表示已發送,0表示未發送。MYSQL - 由一列組和另一個
這是可能實現一個MYSQL SELECT隊列?
+------------------------------------+ |id |message_code |platform |user_id | +------------------------------------+ |1 |2wkdeyu |1 |256 | |2 |2wkdeyu |2 |256 | |3 |4kdi940 |1 |256 | |4 |3eji903 |2 |256 | |5 |4kdi940 |2 |256 | |6 |4kdi940 |3 |256 | |7 |6eioio4 |1 |256 | +------------------------------------+
我做了什麼。
SELECT message_code,GROUP_CONCAT(platform)AS platforms,user_id FROM message_log WHERE user_id ='256'GROUP BY message_code;
+--------------------------------+ |message_code |platform |user_id | +--------------------------------+ |2wkdeyu |1,2 |256 | |4kdi940 |1,2,3 |256 | |3eji903 |2 |256 | |6eioio4 |1 |256 | +--------------------------------+
但我想完成的是這個。
+----------------------------------------------------------+ |message_code |platform 1 |platform 2 |platform 3 |user_id | +----------------------------------------------------------+ |2wkdeyu |1 |1 |0 |256 | |4kdi940 |1 |1 |1 |256 | |3eji903 |0 |1 |0 |256 | |6eioio4 |1 |0 |0 |256 | +----------------------------------------------------------+
任何幫助,將不勝感激。
這被稱爲樞軸代,如果'platform'值是已知的,然後它容易別的動態sql –
[MySQL的透視表(可能重複http://stackoverflow.com/問題/ 7674786/mysql-pivot-table) – Strawberry
它與我的問題類似,但不一樣我不計算列中的值我想識別它們,然後根據該值返回一列。 – LDC