MySQL - 如何使用字符串匹配将值从一个表插入到另一个表中?

时间:2011-04-30 06:35:33

标签: mysql database

MySQL noob在这里;首先环顾四周,但找不到这个问题的答案。

所以我在MySQL中有两个表,一个(表1),它由一列包含唯一的名称列表(Col1)和另一列包含相应的二进制值(Col2)组成。第二个表(表2)包含一个循环名称列表,其中一个空列等待填充第一个表中的二进制值。我想要做的是,对于Table2中每个重复名称的实例,插入与Table1中匹配的唯一名称相关联的Col2的二进制值。

我知道如何在Excel中执行此操作 - 您只需在包含重复名称的每一行旁边放置以下VLOOKUP语句。在下面的代码片段中,A2是一个重复名称,唯一的名称包含在B列中,二进制值包含在C列中。

=VLOOKUP(A2,$B$2:$C$106095,2,FALSE)

但我不能为我的生活弄清楚如何在MySQL中重现这种效果。我不能使用Excel,因为数据太多了。有人有主意吗?提前谢谢!

1 个答案:

答案 0 :(得分:1)

我认为你想要这样的事情(我不知道Excel声明的作用):

UPDATE table2 JOIN table1 ON table1.col1 = table2.col1
SET table2.col2 = table2.col2
WHERE table2.col2 IS NULL

这将更新table2为空的每一行col2,根据匹配的table1列搜索col1中的相应行。

顺便问一下,你有理由这样做吗?为什么不在选择数据时加入两个表?例如:

SELECT table2.col1, table1.col2
FROM table2 JOIN table1 ON table1.col1 = table2.col1