前提・実現したいこと
登録したデータベースは、このような感じになっています。
- 製品名|数量|工順|工程コード
- 製品(1)|2個|2|制作01
- 製品(1)|2個|3|制作03
- 製品(1)|2個|4|制作06
- 製品(1)|2個|6|制作09
- 製品(2)|5個|1|制作01
- 製品(2)|5個|2|制作04
- 製品(3)|1個|5|制作05
- 製品(3)|1個|8|制作10
これを、下記の通りに「配列操作」してMySQLに登録したいと思っています。
0. 製品名|数量|工程コード[0]|[1]|[2]|[3]|・・・
0. 製品(1)|2個|制作01|制作03|制作06|制作09
0. 製品(2)|5個|制作01|制作04
0. 製品(3)|1個|制作05|制作10
<方法(1)>
上記サンプルのようにすることができれば一番理想の形なのですが、私の頭脳では組み立てできませんでした。
なので、順番通り登録して再度出力際にGROUP_CONCAT(process_code)構文でカンマ区切りの結果を出して、テキストエディタを使って「囲み文字(”)」を【すべて置換」で一括削除して使おうと思っています。
<方法(2)>
登録時に主キーを設定し、「製品」と「工順」のテーブルに分けて登録し、出力時にテーブル0001とテーブル0002を結合して出力したいと思っています。
(テーブル0001)
製品ID(主キー)|製品名|数量
0. |製品(1)|2個
0. |製品(2)|5個
0. |製品(3)|1個
(テーブル0002)
テーブルID|製品ID(結合用キー)|工程コード[0]|[1]|[2]|[3]|・・・
0. |1|制作01|制作03|制作06|制作09
0. |2|制作01|制作04
0. |3|制作05|制作10
試したこと
- Windows10ProにXAMPP7.3.6をインストール・起動
- XAMPPにある「phpMyAdmin」からデータベースとテーブルを追加
- 「phpMyAdmin」の”インポート機能”を使ってデータの登録 ※3万2千件程度
- 下記のようなSQL構文を作成し、最終的な結果目標となる構文を設計。
SELECT saler_name,customer_code,customer_name,product_num,direction_num,branch_num,parts_num,parts_name,product_quantity,desired_date,answer_date,work_date,unit_price,amount_money,GROUP_CONCAT(process_code) FROM innodb_utf8db GROUP BY product_num,direction_num ORDER BY customer_code
補足情報
登録時はきっとPHPを使った方法を考えていますが、すでにCSVのコピー的な登録を行った後、SQL構文を使って配列操作する実行コマンドで分割・置換・結合できるようであれが、PHP動作で解決していきたいと思っています。
また、当方利用環境ではXAMPPを使用しており、「PHP」と「MySQL(mariadb)」での運用を考えていますが、他の環境であってもご教授いただけるのであれば「MySQL」さえ使っていただけるのならば、言語は問いません。教えていただけますでしょうか。
回答3件
あなたの回答
tips
プレビュー