UPDATE mysql数据库替换字符串

时间:2011-11-08 16:43:58

标签: mysql replace

我在我的数据库字符串中有www.domain.com和http://www.domain.com。我希望在http://之前添加所有条目,但不会影响其他网址,因此会:http://http://www.domain.com

这可以只使用mysql吗?我使用了REPLACE(字段,'www','http:// www'),但这也替换了http://wwwhttp://http://www

提前致谢

修改

我忘了提到在该字段中可能存在不包含www或http://www的条目,因此我不想更改或者可能有像<p><a href="www.domain.com/">domain</a></p>这样的条目,其中包含CONCAT ()在<p>

之前加上http://

3 个答案:

答案 0 :(得分:1)

尝试在更新中添加WHERE子句,仅更新尚未包含“http://”的字段。像这样测试

 SELECT CONCAT('http://', field) FROM foo WHERE LOCATE('http://', field)=0

并且您的UPDATE语法将是:

UPDATE foo SET field=CONCAT('http://',field) WHERE LOCATE('http://', field)=0

答案 1 :(得分:0)

我不会担心性能,因为这似乎是一种一次性的脚本。也就是说,您可以将LEFTCONCAT结合起来实现这一目标:

UPDATE  mytable
SET     mycolumn = CONCAT('http://',mycolumn)
WHERE   LEFT(mycolumn,7) <> 'http://'

请注意我没有将CapItaliZation记入帐户。您可能还需要在将信息添加到数据库之前考虑清理信息,或者可能触发为您执行此操作。

答案 2 :(得分:0)

搜索和替换查询 - mysql替换

以下是在MySQL数据库表中替换字符串的SQL查询:

UPDATE table_name SET column_name = REPLACE(column_name,'original_string','replace_string')

以下是我在以前所有帖子中更改路径网址所做的工作。

UPDATE `wp_posts` SET `post_content` = REPLACE(`post_content`,'http://localhost/','https://sureshkamal1.wordpress.com/')