将数据列添加到现有的mySQL表

时间:2013-06-20 13:14:03

标签: php mysql

我有一个基本的SQL问题,这让我很生气。如果我有一个mySQL表,例如下面。 如何从第一个空行开始向列2添加另外80个以上的值(在此示例中为第3行)。

我一直在使用INSERT或UPDATE尝试一些查询,但我最接近的是从最后定义的ID值开始将值添加到第2列(例如,行80ish)。

   ID  |    Column 2    |
--------------------------------
  1    |    value       |
  2    |    value       |
  3    |                |
  4    |                |
  5    |                |

etc

真实表有大约10列,都有数据,但我只需要添加内容(CSV格式的大约80个不同字符串的列表到其中一列)

如果有人能指出我正确的方向,我会很感激。

2 个答案:

答案 0 :(得分:3)

我将数据加载到具有相同结构的单独表中,然后使用join或子​​查询更新目标表,以确定哪些列当前为空。

即。加载临时表然后:

update target_table set column2 = (select column2 from interim_table where ... 
where column2 is null

(缓慢但直观)

update target table, interim_table 
set target table.column2 = interim_table.column2 
where target table... = interim_table...
and target_table.column2 is null

(更好的表现)

答案 1 :(得分:0)

为什么不首先运行查询来查找第一个空行ID号?您可以使用SELECT COUNT(*) FROM TABLE_NAME

然后你创建一个for循环并在里面运行一个INSERT查询,从上一个查询返回的值开始。只是一个划痕:

for(var id = last; id < totalOfQueries; id++)
{
  var query = new MysqlCommand("INSERT INTO table VALUES ('" + id + "',....);
}