每行更新一个字段,100万行

时间:2012-11-12 16:05:44

标签: php mysql

我有一个需要“清理”的大型地址数据库。

例如,地址包含县但不总是在同一个字段中,有时它在地址3中,有时地址4或根本不包含。

我把所有内容放在一个表中,创建了一个名为County的新字段,php将数据(每次1000行进行测试)加载到数组中。

搜索“CO”。在地址3或4中,如果找到,则将该单元格的内容复制到“县”。到目前为止一切都很好。

问题是它运行得非常慢,我使用以下内容作为UPDATE:

$ update =“更新机会SET County ='”。 $ address4。 “'”。 “WHERE id =”。 $ ID;

有没有比为每个条目运行上述行更快的方法?

1 个答案:

答案 0 :(得分:5)

直接在SQL中执行它会更快,但就其本质而言,这种字符串搜索会非常慢:

UPDATE opportunities
SET    County = CASE
         WHEN address3 LIKE '%CO.%' THEN address3
         WHEN address4 LIKE '%CO.%' THEN address4
       END