从大型mysql数据库中的字段中删除奇怪的字符

时间:2013-10-05 07:13:44

标签: php mysql replace

我有一个超过8.000.000产品的大型mysql数据库

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

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

我想删除此字段中的所有奇怪字符,只留下a-z和0-9以及spaeces。因此,在此示例中,我希望此字段为“Tag_Heuer Watch pilot red”。

Offcourse我可以循环遍历所有行,并使用以下函数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个查询中,最快的方法是什么?

1 个答案:

答案 0 :(得分:0)

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