首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql单列表-->插入其他表

问Mysql单列表-->插入其他表
EN

Stack Overflow用户
提问于 2013-06-15 11:00:05
回答 2查看 484关注 0票数 0

我有两张桌子:t1和t2

  • t2只有一列名为stuff (60.000项)。
  • t1有15列,包括stuff (空)。t1大约有650.000条条目。

当我没有什么可与之匹配的数据时,如何在t2.stuff中导入t1.stuff中的数据?(我只想用来自t1.stuff的数据填充t2.stuff的空字段,而不关心匹配的ids或任何东西。)

最好的情况(我认为)是,如果我运行这个查询11次,那么t1.stuff的所有字段都会被填充,因为t1.stuff中没有空字段。

下面是一个表的外观示例:

t1:

|__a___|_b_|_c_|stuff|...|

|___308|foo|bar|_____|baz|

|___312|foo|bar|_____|baz|

..。

|655578|foo|bar|_____|baz|

t2:

|___stuff___|

|some_info_1|

|some_info_2|

..。

|some_info_n|

也许需要多个步骤..。

更新

这是我所使用的解决方案,以防有人有类似的问题--所有的学分都归用户nurdglaw,因为它为我指明了正确的方向。所以我们开始:

  1. 将新列添加到使用自动递增号填充的表中(我在主键上设置了alter table t1 auto_increment = 1和临时禁用的自动递增,以避免使用此代码时出现错误)
  2. t2也做了同样的事情。如果您还没有第二个表,可以这样做:CREATE TABLE t2 (id INTEGER PRIMARY KEY AUTO_INCREMENT,t2_data_column VARCHAR(255)); <--根据需要调整编号

并使用以下方法导入数据:

LOAD DATA LOCAL INFILE 'path_on_your_server/data_file.csv'

INTO TABLE t2

LINES TERMINATED BY '\r\n' <--适应您的换行需求

(t2_data_column)

  1. 现在,您可以使用INNER JOIN t1与t2进行匹配,方法如下:将数据从t2添加到t1 UPDATE t1 AS s JOIN t2 AS t ON t.id=s.new_column SET s.stuff=t.t2_data_column; <-- stuff是我想要将数据导入到的t1中的列。
  2. 收拾烂摊子 DROP TABLE t2; ALTER TABLE t1 DROP COLUMN new_column; 再次启用主键上的自动增量,并将其设置为新行所需的数字(如果以前使用过的话)。

够了,你完了!

另一个注意事项:我决定离线调整我的数据,并一次性导入此方法所需的650.000项,而不是只使用我在初始问题中输入的60.000项。但是,您可以使用任意数量的数据来实现它,并将其与所需的任何内容匹配。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-15 18:37:25

INSERT语句在表中创建新行。您需要更新已经存在的行。

一个简单的方法是使用外部脚本语言。

这里是一个rebol示例

;假设您使用的是softinnov中的mysql库。

;a_是t1中行的唯一键的名称。

db:打开mysql://user:pass@mysql 插入db {select *从t1} t1rows:复制db 插入db {select *从t2} t2rows:复制db 前排t1rows [ 插入db {update t1 set t1.stuts=?其中t1.a_ = ?} t 2行/1/1行/1 任一条尾巴?下一次t2rows [ t2rows:头t2rows ] t2rows: next t2rows ]

对不起,您的示例中的格式和变量仍然存在问题。

票数 1
EN

Stack Overflow用户

发布于 2013-06-15 12:59:08

尝尝这个

代码语言:javascript
复制
     INSERT INTO t1 (stuff)
     SELECT DISTINCT stuff FROM t2

我希望它能帮上忙

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17122903

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档