0

8.000.000 を超える製品を含む大規模な mysql データベースがあります。

この時点で、「productname」列には、「Tag_Heuer Watch "pilot" (red)」などの値を含めることができます。

製品名フィールドに AZ 以外の文字と 0 ~ 9 文字を含む行が何百万もあります

このフィールドのすべての奇妙な文字を削除し、az と 0-9 とスペースだけを残します。したがって、この例では、このフィールドを「Tag_Heuer Watch pilot red」にしたいと考えています。

もちろん、次の関数でフィールドを 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 に答える