0

我有一个包含 8.000.000 多个产品的大型 mysql 数据库

此时“productname”列可以包含值,例如“Tag_Heuer Watch “pilot”(红色)”

我在产品名称字段中有数百万行包含非 AZ 和 0-9 个字符

我想删除该字段中的所有奇怪字符,只留下 az 和 0-9 和空格。所以在这个例子中,我希望这个字段是“Tag_Heuer Watch Pilot red”。

当然,我可以使用以下函数遍历所有行 en str_replace 字段:

<?php
function stripJunk($string){
$string = preg_replace("/[^a-zA-Z0-9]/", " ", $string);
$string = preg_replace("/\s{2,}/"," ",$string);
$string = trim($string);
return $string;
}
?>

但这需要几个小时:-(

在可能 1 个查询中执行此操作的最佳最快方法是什么?

4

1 回答 1

0
  1. 使用 LIMIT 从 sql 中选择行。尝试您的脚本删除特殊字符并使用更新查询来更新行。
  2. 为此,在 mysql 表 row_updated int default 0 中添加新列;更新行部分后,也将 row_updated 更新为 1。
  3. 然后您可以轻松更新组中的记录。我猜这是最好的方法。
于 2013-10-05T07:37:05.873 回答