私はテーブルを持っています。各行にはbody
という列があり、JSON形式のデータが格納されます。mysql何百万もの行データを1つのテーブルから別のテーブルにインポートする
table_a:たとえば
id user_id body
1 1 {'tel': '13678031283', 'email': '[email protected]', 'name': 'test'....}
2 2 {'tel' : '1567827126', 'age': '16'....}
......
私はtable_bという名前の、別のテーブルを持っている:
table_b:
id user_id tel email name
1 1 13678019 [email protected] test1
2 2 15627378 [email protected] test2
.....
table_aは、私が欲しい2万行のデータを持っていますすべてのtable_aデータをtable_bにインポートするには、table_aの各行を処理する必要があります。
私はこのようにそれに対処したい:
for row in table_a_rows:
result = process(row)
insert result to table_b
.....
しかし、私は、それは良いアイデアではないと思います。そこにそれを作る良い方法はありますか?
ことができます:
だからあなたはtable_bに直接おtable_aで持っているすべてのデータを置き換えることができます:たとえば、電子メールを取得することは、このようなものになるだろうそのような厄介なjson構造を「仮想列」として扱うことができます。そうすれば、ストアドプロシージャを実装する必要なしに、タスクに対してプレーンSQLの更新ステートメントを使用することができます。 – arkascha
私は体の各キーを単一の列としては望んでいません、私は情報を必要としたいだけです。 – pangpang
申し訳ありませんが、私はあなたの最後のコメントであなたが何を言おうとしているのか分かりません。値が別々の列に格納されているかのように、JSON構造のコンテンツにアクセスする必要があります。これは拡張機能が許すものです。こうすることで、JSON文字列の内容を別々の値に分割し、別の値に戻してからupdateステートメントで再度使用することができます。それは私があなたの質問を完全に見逃していない限り、あなたが尋ねるものです。 – arkascha