2011-11-09 4 views
1

は私がMySQLでstr_replaceする方法がわからないこのテーブルはSQL文は、パスの行にドメイン名を更新する

+--------------+---------------------------------+ 
| id   | path       | 
+--------------+---------------------------------+ 
| 1   | http://old.com/img/1.png  | 
| 2   | http://old.com/img/2.png  | 
| 3   | http://old.com/img/3.png  | 
| 4   | http://old.com/img/4.png  | 
| 5   | http://old.com/img/5.png  | 
| 6   | http://old.com/img/6.png  | 
+--------------+---------------------------------+ 

何文

+--------------+---------------------------------+ 
| id   | path       | 
+--------------+---------------------------------+ 
| 1   | http://new.com/img/1.png  | 
| 2   | http://new.com/img/2.png  | 
| 3   | http://new.com/img/3.png  | 
| 4   | http://new.com/img/4.png  | 
| 5   | http://new.com/img/5.png  | 
| 6   | http://new.com/img/6.png  | 
+--------------+---------------------------------+ 

にそれを更新します言うことができます

"UPDATE table SET path = REPLACE(path, 'old.com', 'new.com')" ??私は..混乱ここでは、データベースをすることはできません

+2

常に常に常に*常に*必ず常に常にバックアップしてください。 – TehShrike

+0

コードが正しいようです。チェックしたい場合は、結果が正しいかどうかを確認するために、「SELECT path、REPLACE(path、 'old.com'、 'new.com')FROM table」を実行します。 –

答えて

1
update mytable set path = replace(path, 'old.com', 'new.com'); 

アップデートの効果(あなたがする必要があります)心配している場合は、私が最初にこれを実行します。

select path, replace(path, 'old.com', 'new.com') as new_path 
from mytable; 

そして、ちょうどI彼らが「見た目がいいかどうか」を確認するために結果を確認します。彼らがそうした場合は、更新を発生させる。

0

mySQLにregexp replace機能はありません。regex関数はマッチします。ここにmysqlがありますdocumentation

関連する問題