如何在MysQL中的同一个表中更新具有相同ID的记录

时间:2017-08-03 11:36:11

标签: mysql

我有一张表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

5 个答案:

答案 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,值将更新。