更新MySQL中的列


69

我有一个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");


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



请选择此问题的可接受答案。如果您发现另一个问题有所帮助,请为此帖子创建一个答案,详细说明您的成功。
2015年

UPDATE table1 SET col_a='new' WHERE key_col='key';
杰弗里·黑尔

Answers:


112

您必须使用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';

所以你说我需要为我要更新的每一行写一个更新查询?
Muleskinner

阅读本文以获取多行更新: karlrixon.co.uk/articles/sql/…–
Naveed

7
链接Update Multiple Rows With Different Values and a Single SQL Query断开。请修复或删除。
nodebase '17

您可以从客户端应用程序中使用批处理。
I.Tyger '17


3

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

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

2

如果要填充所有列:

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

0

如果要更新数据,则应使用UPDATEcommand而不是INSERT

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.