sql语句更新路径行中的域名

时间:2011-11-09 09:45:31

标签: mysql 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        | 
+--------------+---------------------------------+

我不知道如何在mysql中使用str_replace

"UPDATE table SET path = REPLACE(path, 'old.com', 'new.com')" ??我不能在这里弄乱数据库..

2 个答案:

答案 0 :(得分:1)

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

如果你担心更新的影响(你应该这样做),我首先这样做:

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

我只是看看结果,看看他们“看起来不错”。如果他们这样做,如果触发更新。

答案 1 :(得分:0)

mySQL中没有正则表达式替换功能:正则表达式函数仅匹配。这是mysql documentation