SQL UPDATE,INSERT还是其他什么?

时间:2015-12-10 06:00:29

标签: mysql

我在网站上有一个mySQL数据库表。它有几千行数据。我刚刚添加了一个列,需要为row_id 1500到5000添加数据到此列。我正在考虑这样做 -

UPDATE `TableName` SET `Col_New` = 'abc' WHERE `id` = '1500'

并重复此操作直到 -

UPDATE `TableName` SET `Col_New` = 'xyz' WHERE `id` = '5000'

这是否有效还是有更好的更快的方式吗? “我是新手,因此会感激点头或任何建议。

3 个答案:

答案 0 :(得分:3)

您可以使用BETWEEN,如下所示:

UPDATE `TableName` SET `Col_New` = 'abc' WHERE `id` BETWEEN '1500' and '5000';

如果每行的Col_New值不同,那么您应该使用循环。

答案 1 :(得分:0)

将更新查询放入一个交易中

BEGIN;
UPDATE `TableName` SET `Col_New` = 'abc' WHERE `id` = '1500';
-- and so on
UPDATE `TableName` SET `Col_New` = 'xyz' WHERE `id` = '5000';
COMMIT;

它会快得多。仅限交易引擎 - innoDb。

答案 2 :(得分:0)

最有效,可扩展的方式可能是:

将您的数据存入数据库中的表格

使用MySQL load data infile执行此操作。

从该表中更新

UPDATE `tableName`
INNER JOIN `sourceValues` ON
   `tableName.id` = `sourceValues.id`
SET `tableName`.`Col_New` = `sourceValues`.`Col_New`

请注意,我还没有包含where子句,因为我假设sourceValues表只包含您要更新的值。但是,如果需要,您可以添加:

where `tableName.id` between 1500 and 5000

如果您只是将其作为快速入侵,那么插入每行的宏可能是最简单的方法。但是如果这是一项你会做很多的操作,我会推荐这样的东西,特别是如果你可能希望将来有更多的价值。