2012-05-05 4 views
2

は私のデータベースに、次のメッセージ例を考えてみましょう:メッセージは文字列のことで、私はそれがなるように、それの後にスペースを削除する「いけない」を持っているときはいつでも削除スペースが

I dont agree with you 
That is something I dont do 
This is another string with dont 
String without d o n t 

I dontagree with you 
That is something I dontdo 
This is another string with dont 
String without d o n t 

私のデータベースには何千ものメッセージがあります。 PHPでデータベースにクエリを実行してから、

$message = str_replace(' dont ', ' dont', $message) 

を入力することができますが、これはおそらくSQLでもっと時間がかかるでしょう。 SQLで同じ操作を行うことは可能ですか?

答えて

4

は、SQL置き換える()関数を使用します。

update mytable set 
mycol = replace(mycol, ' dont ', ' dont') 

あなたは正しいです - それはたくさん速くSQL

+0

で興味があるだけのようになります。なぜこれはSQLでそんなに速いのでしょうか? – Daan

+0

一般に、リレーショナルデータベースを使用すると、操作を処理するためにより多くのメモリとプロセッサを使用できます。この特定の操作は、複数のプロセッサで行うことができます。クライアント側では、通常はシリアル化されます。 –

+1

@GordonLinoff **完全に**無関係です。理由は、行セットがワイヤを介してパイプラインされ、再び戻されるのではなく、メモリ内で処理されるためです。 SQLの接続は*非常に*おしゃべりです*なぜそれが速いのですか?あなたの "マルチプロセッサ"の理由はごみです:アプリケーションサーバーは複数のプロセッサーと1つのデータベースしか持てませんが、SQLを使用する方が速いでしょう。 – Bohemian

関連する問題