我有一个表,它有两百万行数据。对于每一行,它都有一个 body
列,它存储 JSON 格式的数据。例如:
表_a:
id user_id body
1 1 {'tel': '13678031283', 'email': 'test@gmail.com', 'name': 'test'....}
2 2 {'tel' : '1567827126', 'age': '16'....}
......
我还有另一个表,名为 table_b:
表_b:
id user_id tel email name
1 1 13678019 test@qq.com test1
2 2 15627378 test1@qq.com test2
.....
table_a有200万行数据,我想将table_a的所有数据导入到table_b,table_a的每一行都要处理。
我想这样处理:
for row in table_a_rows:
result = process(row)
insert result to table_b
.....
但我认为这不是一个好主意。有更好的方法吗?
最佳答案
您可以直接使用JSON_EXTRACT
从table_a中选择您需要的数据。例如,获取电子邮件将如下所示:
mysql> SELECT JSON_EXTRACT(body, '$.email') from table_a;
因此,您可以将 table_a 中的所有数据直接替换到 table_b 中:
mysql> REPLACE INTO table_b SELECT user_id,
JSON_EXTRACT(body, '$.tel'),
JSON_EXTRACT(body,'$.email'),
JSON_EXTRACT(body,'$.name') from table_a
关于python - mysql 百万行数据从一张表导入到另一张表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36258042/