我有一张表Table1
,其中包含
-------------------------------
code value
-------------------------------
02 null
05 null
06 hi
02 hello
05 how
我想更新与
相同的表格-------------------------------
id value
-------------------------------
02 hello
05 how
06 hi
02 hello
05 how
我使用了以下查询,但无效:
update Table1 set value=value where id is null
答案 0 :(得分:2)
您需要创建Table1的别名,然后将值设置为空记录,如下所示:
./dist/components
以上查询经过测试并正常运作。
答案 1 :(得分:0)
您需要join
来连接这两个表(相关子查询在MySQL更新语句中很棘手):
update table1 t1 join
(select id, min(value) as value
from table1
group by id
) tt1
on t1.id = tt.id
set t1.value = tt1.value
where t1.value is null;
答案 2 :(得分:0)
我认为语法更简单:
update t1 from table1 t1, table2 t2 set t1.value=t2.value where t1.code=t2.id
我现在没有测试过它。
答案 3 :(得分:0)
使用SELECT语句生成脚本并执行它(不要忘记最后提交):
select concat('update Table1 set value=`', value, '` where id =', id, ';') as script from Table1 where value is not null;
答案 4 :(得分:-1)
查询应写为:
更新Table1 set value =''其中id = 1。
这里的值是列名,你想更新一些内容(hi,hello等)。如果内容是String,则用单/双引号将其括起来。对于WHERE子句之后要更新的行。在这里,您将条件设置为WHERE id = 1.因此,对于id = 1,值将更新。