【问题标题】:Update a column in MySQL更新 MySQL 中的列
【发布时间】:2011-09-24 03:11:50
【问题描述】:

我有一张表table1,有三列和一堆行:

[key_col|col_a|col_b]

我想用一组值更新 col_a(即保持 col_b 不变),如下所示:

INSERT INTO table1 AS t1 (key_col, col_a) VALUES ("k1", "foo"), ("k2", "bar");


但它不起作用,我该怎么做?

【问题讨论】:

标签: mysql insert-update


【解决方案1】:

您必须使用 UPDATE 而不是 INSERT:

例如:

UPDATE table1 SET col_a='k1', col_b='foo' WHERE key_col='1';
UPDATE table1 SET col_a='k2', col_b='bar' WHERE key_col='2';

【讨论】:

  • 所以你是说我需要为要更新的每一行编写一个更新查询?
  • 阅读本文了解多行更新:karlrixon.co.uk/articles/sql/…
  • 链接Update Multiple Rows With Different Values and a Single SQL Query 已损坏。请修复或删除。
  • 您可以使用客户端应用程序中的批处理。
【解决方案2】:
UPDATE table1 SET col_a = 'newvalue'

如果您只想更新部分行,请添加WHERE 条件。

【讨论】:

  • 你能举个例子,在同一个查询中更新多行吗
  • 这将更新所有行。使用 where 将其限制为更少的行。
【解决方案3】:

这是我为批量更新所做的:

UPDATE tableName SET isDeleted = 1 where columnName in ('430903GW4j683537882','430903GW4j667075431','430903GW4j658444015')

【讨论】:

    【解决方案4】:

    如果要填满所有列:

    update 'column' set 'info' where keyID!=0;
    

    【讨论】:

      【解决方案5】:

      如果你想更新数据你应该使用UPDATE命令而不是INSERT

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-08-25
        • 1970-01-01
        • 2012-03-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-07
        相关资源
        最近更新 更多