我有一个基本的SQL问题,这让我很生气。如果我有一个mySQL表,例如下面。 如何从第一个空行开始向列2添加另外80个以上的值(在此示例中为第3行)。
我一直在使用INSERT或UPDATE尝试一些查询,但我最接近的是从最后定义的ID值开始将值添加到第2列(例如,行80ish)。
ID | Column 2 |
--------------------------------
1 | value |
2 | value |
3 | |
4 | |
5 | |
etc
真实表有大约10列,都有数据,但我只需要添加内容(CSV格式的大约80个不同字符串的列表到其中一列)
如果有人能指出我正确的方向,我会很感激。
答案 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 + "',....);
}