mysql百万行数据从一张表导入到另一张表

2024-06-14 11:53:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个表,它有两百万行数据。对于每一行,它都有一个body列,它存储一个JSON格式的数据。例如:

表a:

id user_id  body
1  1        {'tel': '13678031283', 'email': 'test@gmail.com', 'name': 'test'....}
2  2        {'tel' : '1567827126', 'age': '16'....}
......

我有另一个表,名为表\u b:

表b:

id     user_id    tel        email         name
1      1          13678019   test@qq.com   test1
2      2          15627378   test1@qq.com  test2  
.....

表a有200万行数据,我想把表a的所有数据导入表b,表a的每一行都应该处理。你知道吗

我想这样处理:

for row in table_a_rows:
    result = process(row)
    insert result to table_b
.....

但我认为这不是个好主意。有更好的方法吗?你知道吗


Tags: 数据nametestcomidjsonemailtable
1条回答
网友
1楼 · 发布于 2024-06-14 11:53:56

您可以直接用JSON_EXTRACT从表中选择所需的数据。例如,获取电子邮件的方式如下:

mysql> SELECT JSON_EXTRACT(body, '$.email') from table_a;

因此,您可以将表a中的所有数据直接替换到表b中:

mysql> REPLACE INTO table_b SELECT user_id, 
JSON_EXTRACT(body, '$.tel'),
JSON_EXTRACT(body,'$.email'), 
JSON_EXTRACT(body,'$.name') from table_a

相关问题 更多 >