有没有快速的方法来更新SQL中的许多记录?

sam*_*ami 3 mysql sql replace phpmyadmin sql-update

我需要使用我在CodeID创建的新名称替换超过20 000个名称.

例如:我必须更新包含"狗"(其中有1代码ID)与"猫"的所有行,并更新包含"马"(其中有2代码ID)与"鸟"的所有行,等等.

第一个SQL语句:UPDATE animalTable SET cDescription="cat"WHERE CodeID= 1

第二个SQL语句:UPDATE animalTable SET cDescription="bird"WHERE CodeID= 2

这些陈述有效,但我需要更快的方法来做到这一点,因为我有超过20 000个名字.

先感谢您.

Hei*_*eld 7

这是你能做到的最快的方法.

或者您想要在一个命令中更新所有记录?

你可以使用连接进行更新(固定语法...暂时没有使用过这个)

UPDATE animalTable 
INNER JOIN CodeTable ON animalTable.CodeID = CodeTable.ID 
SET animalTable.cDescription = CodeTable.Description_1;
Run Code Online (Sandbox Code Playgroud)

另一种选择是分裂更新为较小的批次,这样会减少表被锁定的时间......但是,更新的总时间将需要较长的时间(它只是一个precieved性能的改善)您可以通过更新只有某些做到这一点每批中的ID范围.

您也可以将该数据放在单独的表中.由于数据未规范化.将它移开,使其更加规范化.