次の形式のMySQLテーブルがあります。これは実行しているプログラムからの出力であり、変更できません。MySQL:列の値に基づいて複数行から1行にデータを移動
+---+------------------------+
| | A B C D E |
+---+------------------------+
| | model amz wmt abt tgt |
| 1 | c3000 100 |
| 2 | c3000 200 |
| 3 | c3000 150 |
| 4 | c3000 125 |
| 5 | A1234 135 |
| 6 | A1234 105 |
+---+------------------------+
列1の値、つまりモデルに基づいて、すべての行を1行に移動したいと考えています。私は
select model,group_concat(wmt),group_concat(amz) from table_name group by model
を使用してみました
+---+-----------------------+
| | A B C D E |
+---+-----------------------+
| | model amz wmt abt tgt |
| 1 | c3000 100 200 150 125 |
| 2 | A1234 200 105 135 |
+---+-----------------------+
そして私が手出力:注意点は、空白行が実際にブランクでないと
所望の出力ヌル文字に含まれているということですカンマでいっぱいです。
+---+----------------------------------+
| | A B |
+---+----------------------------------+
| | model amz wmt |
| 1 | c3000 ,,,,100,,,, ,,,200,,,, |
| 2 | A1234 ,,200,,,,,, ,105,,,,,, |
+---+----------------------------------+
値がない場合は、空の文字列 ''''を保存するため、カンマが表示されます。欠損値に 'NULL'を使用した場合、group_concat()はNULLを無視します。 –
@BillKarwin MySQLにデータをロードするソフトウェアがemtpy文字列を送信するため、NULLを使用できません。 –
関数[NULLIF()]を参照(http://dev.mysql.com/doc/refman/5.7/en/control-flow-functions.html#function_nullif) –