CSV 形式の値を持つ 2 つの列 (value1、value2) を持つ tableA があります。tableA と同じフィールドを持つ tableB を作成したいのですが、これらの 2 つの列では値の数が制限されています (カンマの間に何文字あるかはわかりません)。この「制限」は、CSVの最初のn要素です。
表 A
+----+----------+----------------------+----------------------+
| id | other | value1 | value2 |
+----+----------+----------------------+----------------------+
| 1 | other1 | 111,222,333,444 | 1616,17,1,8,19,2020 |
| 2 | other2 | 55,6,7777,8,9 | 21,22,23 |
| 3 | other3 | 10101,11.11,13,14,15 | 242424,2525,26,27 |
+----+----------+----------------------+----------------------+
表 B (3 要素まで)
+----+----------+----------------------+----------------------+
| id | other | value1 | value2 |
+----+----------+----------------------+----------------------+
| 1 | other1 | 111,222,333 | 1616,17,1 |
| 2 | other2 | 55,6,7777 | 21,22,23 |
| 3 | other3 | 10101,11.11,13 | 242424,2525,26 |
+----+----------+----------------------+----------------------+
編集:
これらのテーブルには膨大な数の要素 (および「その他」のような他の多くの列) があることは言及しませんでした。したがって、私は使用することを好みます:
create table tableB LIKE tableA;
INSERT tableB SELECT * FROM tableA;
次に、value1 と value2 を更新します (2 つの異なるトランザクションで - 実際、そのような列が 91 あります)。これはおそらく、単一のクエリ内のすべての値を持つ「テーブルの作成」よりも効率的です...
EDITED2(ソリューション):
SQLフィドル: